{
  "bundles": [
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-routing-core",
      "artifactVersion": "7.10-HF07",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "org.nuxeo.ecm.platform.restapi.server.routing",
          "org.nuxeo.ecm.platform.routing.api",
          "org.nuxeo.ecm.platform.routing.core",
          "org.nuxeo.ecm.platform.routing.dashboard",
          "org.nuxeo.ecm.platform.routing.default",
          "org.nuxeo.ecm.platform.routing.dm",
          "org.nuxeo.ecm.platform.routing.web"
        ],
        "hierarchyPath": "/grp:org.nuxeo.ecm.routing",
        "id": "grp:org.nuxeo.ecm.routing",
        "name": "org.nuxeo.ecm.routing",
        "parentIds": [],
        "readmes": [],
        "version": "7.10"
      },
      "bundleId": "org.nuxeo.ecm.platform.routing.core",
      "components": [
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.event.EventServiceComponent--listener",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.cleanup.config/Contributions/org.nuxeo.ecm.platform.routing.cleanup.config--listener",
              "id": "org.nuxeo.ecm.platform.routing.cleanup.config--listener",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.event.EventServiceComponent",
                "name": "org.nuxeo.ecm.core.event.EventServiceComponent",
                "type": "service"
              },
              "version": "7.10-HF07",
              "xml": "<extension point=\"listener\" target=\"org.nuxeo.ecm.core.event.EventServiceComponent\">\n    <listener class=\"org.nuxeo.ecm.platform.routing.core.listener.DocumentRoutingWorkflowInstancesCleanup\" name=\"workflowInstancesCleanup\">\n      <event>workflowInstancesCleanup</event>\n    </listener>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.scheduler.core.service.SchedulerRegistryService--schedule",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.cleanup.config/Contributions/org.nuxeo.ecm.platform.routing.cleanup.config--schedule",
              "id": "org.nuxeo.ecm.platform.routing.cleanup.config--schedule",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.scheduler.core.service.SchedulerRegistryService",
                "name": "org.nuxeo.ecm.platform.scheduler.core.service.SchedulerRegistryService",
                "type": "service"
              },
              "version": "7.10-HF07",
              "xml": "<extension point=\"schedule\" target=\"org.nuxeo.ecm.platform.scheduler.core.service.SchedulerRegistryService\">\n\n    <schedule id=\"workflowInstancesCleanup\">\n      <eventId>workflowInstancesCleanup</eventId>\n      <!-- every day at 11.59 PM -->\n      <cronExpression>0 59 23 * * ?</cronExpression>\n    </schedule>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.cleanup.config",
          "name": "org.nuxeo.ecm.platform.routing.cleanup.config",
          "requirements": [],
          "services": [],
          "version": "7.10-HF07",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.routing.cleanup.config\">\n\n  <extension\n    target=\"org.nuxeo.ecm.platform.scheduler.core.service.SchedulerRegistryService\"\n    point=\"schedule\">\n\n    <schedule id=\"workflowInstancesCleanup\">\n      <eventId>workflowInstancesCleanup</eventId>\n      <!-- every day at 11.59 PM -->\n      <cronExpression>0 59 23 * * ?</cronExpression>\n    </schedule>\n\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.core.event.EventServiceComponent\"\n    point=\"listener\">\n    <listener name=\"workflowInstancesCleanup\"\n      class=\"org.nuxeo.ecm.platform.routing.core.listener.DocumentRoutingWorkflowInstancesCleanup\">\n      <event>workflowInstancesCleanup</event>\n    </listener>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/document-routing-cleanup-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.operation.OperationServiceComponent--operations",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.operations/Contributions/org.nuxeo.ecm.platform.routing.operations--operations",
              "id": "org.nuxeo.ecm.platform.routing.operations--operations",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.operation.OperationServiceComponent",
                "name": "org.nuxeo.ecm.core.operation.OperationServiceComponent",
                "type": "service"
              },
              "version": "7.10-HF07",
              "xml": "<extension point=\"operations\" target=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\">\n    <operation class=\"org.nuxeo.ecm.platform.routing.api.operation.ResumeStepOperation\"/>\n    <operation class=\"org.nuxeo.ecm.platform.routing.api.operation.StepDoneOperation\"/>\n    <operation class=\"org.nuxeo.ecm.platform.routing.api.operation.StepBackToReadyOperation\"/>\n    <operation class=\"org.nuxeo.ecm.platform.routing.api.operation.UpdateCommentsInfoOnDocumentOperation\"/>\n    <operation class=\"org.nuxeo.ecm.platform.routing.api.operation.SetNextStepOnConditionalFolderOperation\"/>\n    <operation class=\"org.nuxeo.ecm.platform.routing.core.impl.GetGraphOperation\"/>\n    <operation class=\"org.nuxeo.ecm.platform.routing.api.operation.SetWorkflowNodeVar\"/>\n    <operation class=\"org.nuxeo.ecm.platform.routing.core.api.operation.SetWorkflowVar\"/>\n    <operation class=\"org.nuxeo.ecm.platform.routing.core.api.operation.StartWorkflowOperation\"/>\n    <operation class=\"org.nuxeo.ecm.platform.routing.api.operation.MapPropertiesOnTaskOperation\"/>\n    <operation class=\"org.nuxeo.ecm.platform.routing.api.operation.BulkRestartWorkflow\"/>\n    <operation class=\"org.nuxeo.ecm.platform.routing.core.api.operation.CancelWorkflowOperation\"/>\n    <operation class=\"org.nuxeo.ecm.platform.routing.core.api.operation.ResumeNodeOperation\"/>\n    <operation class=\"org.nuxeo.ecm.platform.routing.core.api.operation.CompleteTaskOperation\"/>\n    <operation class=\"org.nuxeo.ecm.platform.routing.core.api.operation.GetOpenTasksOperation\"/>\n    <operation class=\"org.nuxeo.ecm.platform.routing.core.api.operation.GetTaskNamesOperation\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.operations",
          "name": "org.nuxeo.ecm.platform.routing.operations",
          "requirements": [],
          "services": [],
          "version": "7.10-HF07",
          "xmlFileContent": "<component name=\"org.nuxeo.ecm.platform.routing.operations\"\n  version=\"1.0\">\n\n  <extension target=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\"\n    point=\"operations\">\n    <operation\n      class=\"org.nuxeo.ecm.platform.routing.api.operation.ResumeStepOperation\" />\n    <operation\n      class=\"org.nuxeo.ecm.platform.routing.api.operation.StepDoneOperation\" />\n    <operation\n      class=\"org.nuxeo.ecm.platform.routing.api.operation.StepBackToReadyOperation\" />\n    <operation\n      class=\"org.nuxeo.ecm.platform.routing.api.operation.UpdateCommentsInfoOnDocumentOperation\" />\n    <operation\n      class=\"org.nuxeo.ecm.platform.routing.api.operation.SetNextStepOnConditionalFolderOperation\" />\n    <operation\n      class=\"org.nuxeo.ecm.platform.routing.core.impl.GetGraphOperation\" />\n    <operation\n      class=\"org.nuxeo.ecm.platform.routing.api.operation.SetWorkflowNodeVar\" />\n    <operation\n      class=\"org.nuxeo.ecm.platform.routing.core.api.operation.SetWorkflowVar\" />\n    <operation\n      class=\"org.nuxeo.ecm.platform.routing.core.api.operation.StartWorkflowOperation\" />\n    <operation\n      class=\"org.nuxeo.ecm.platform.routing.api.operation.MapPropertiesOnTaskOperation\" />\n    <operation\n      class=\"org.nuxeo.ecm.platform.routing.api.operation.BulkRestartWorkflow\" />\n    <operation\n      class=\"org.nuxeo.ecm.platform.routing.core.api.operation.CancelWorkflowOperation\" />\n    <operation\n      class=\"org.nuxeo.ecm.platform.routing.core.api.operation.ResumeNodeOperation\" />\n    <operation\n      class=\"org.nuxeo.ecm.platform.routing.core.api.operation.CompleteTaskOperation\" />\n    <operation\n      class=\"org.nuxeo.ecm.platform.routing.core.api.operation.GetOpenTasksOperation\" />\n    <operation\n      class=\"org.nuxeo.ecm.platform.routing.core.api.operation.GetTaskNamesOperation\" />\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/document-routing-operations-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.lifecycle.LifeCycleService--types",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.lifecycle.contrib/Contributions/org.nuxeo.ecm.platform.routing.lifecycle.contrib--types",
              "id": "org.nuxeo.ecm.platform.routing.lifecycle.contrib--types",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.lifecycle.LifeCycleService",
                "name": "org.nuxeo.ecm.core.lifecycle.LifeCycleService",
                "type": "service"
              },
              "version": "7.10-HF07",
              "xml": "<extension point=\"types\" target=\"org.nuxeo.ecm.core.lifecycle.LifeCycleService\">\n    <types>\n      <type name=\"DocumentRoute\" noRecursionForTransitions=\"toValidated,toReady,toRunning,toDone,toCanceled,backToReady\">\n        documentRouteElement\n      </type>\n      <type name=\"StepFolder\" noRecursionForTransitions=\"toValidated,toReady,toRunning,toDone,toCanceled,backToReady\">\n        documentRouteElement\n      </type>\n      <type name=\"ConditionalStepFolder\" noRecursionForTransitions=\"toValidated,toReady,toRunning,toDone,toCanceled,backToReady\">\n        documentRouteElement\n      </type>\n      <type name=\"DocumentRouteStep\">documentRouteElement</type>\n      <type name=\"RouteNode\">documentRouteElement</type>\n      <type name=\"RoutingTask\">task</type>\n    </types>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.lifecycle.LifeCycleService--lifecycle",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.lifecycle.contrib/Contributions/org.nuxeo.ecm.platform.routing.lifecycle.contrib--lifecycle",
              "id": "org.nuxeo.ecm.platform.routing.lifecycle.contrib--lifecycle",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.lifecycle.LifeCycleService",
                "name": "org.nuxeo.ecm.core.lifecycle.LifeCycleService",
                "type": "service"
              },
              "version": "7.10-HF07",
              "xml": "<extension point=\"lifecycle\" target=\"org.nuxeo.ecm.core.lifecycle.LifeCycleService\">\n\n    <lifecycle defaultInitial=\"draft\" name=\"documentRouteElement\">\n      <transitions>\n        <transition destinationState=\"validated\" name=\"toValidated\">\n          <description>the model is validated</description>\n        </transition>\n        <transition destinationState=\"ready\" name=\"toReady\">\n          <description>the element is ready to be executed</description>\n        </transition>\n        <transition destinationState=\"running\" name=\"toRunning\">\n          <description>the element starts</description>\n        </transition>\n        <transition destinationState=\"done\" name=\"toDone\">\n          <description>the element finishes</description>\n        </transition>\n        <transition destinationState=\"waiting\" name=\"toWaiting\">\n          <description>the element waits for a join</description>\n        </transition>\n        <transition destinationState=\"suspended\" name=\"toSuspended\">\n          <description>the element waits for a task</description>\n        </transition>\n        <transition destinationState=\"ready\" name=\"backToReady\">\n          <description>the element finishes</description>\n        </transition>\n        <transition destinationState=\"canceled\" name=\"toCanceled\">\n          <description>cancel this element</description>\n        </transition>\n        <transition destinationState=\"draft\" name=\"toDraft\">\n          <description>\n            go to the draft state, this is done when creating a new instance\n            from a model\n          </description>\n        </transition>\n      </transitions>\n      <states>\n        <state description=\"Default state\" initial=\"true\" name=\"draft\">\n          <transitions>\n            <transition>toValidated</transition>\n          </transitions>\n        </state>\n        <state description=\"The element is validated\" initial=\"true\" name=\"validated\">\n          <transitions>\n            <transition>toReady</transition>\n            <transition>toDraft</transition>\n          </transitions>\n        </state>\n        <state description=\"The element is ready\" initial=\"true\" name=\"ready\">\n          <transitions>\n            <transition>toRunning</transition>\n            <transition>toWaiting</transition>\n            <transition>toSuspended</transition>\n            <transition>toCanceled</transition>\n            <transition>toDraft</transition>\n          </transitions>\n        </state>\n        <state description=\"The element is running\" name=\"running\">\n          <transitions>\n            <transition>toDone</transition>\n            <transition>backToReady</transition>\n            <transition>toCanceled</transition>\n            <transition>toDraft</transition>\n          </transitions>\n        </state>\n        <state description=\"The element is done\" name=\"done\">\n          <transitions>\n            <transition>backToReady</transition>\n            <transition>toCanceled</transition>\n            <transition>toDraft</transition>\n          </transitions>\n        </state>\n        <state description=\"The element waits for a join\" name=\"waiting\">\n          <transitions>\n            <transition>toReady</transition>\n            <transition>toSuspended</transition>\n            <transition>toCanceled</transition>\n            <transition>toDraft</transition>\n          </transitions>\n        </state>\n        <state description=\"The element waits for a task\" name=\"suspended\">\n          <transitions>\n            <transition>toReady</transition>\n            <transition>toWaiting</transition>\n            <transition>toCanceled</transition>\n            <transition>toDraft</transition>\n          </transitions>\n        </state>\n        <state description=\"The element is cancelled\" name=\"canceled\">\n          <transitions>\n            <transition>backToReady</transition>\n            <transition>toDraft</transition>\n          </transitions>\n        </state>\n      </states>\n    </lifecycle>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.lifecycle.contrib",
          "name": "org.nuxeo.ecm.platform.routing.lifecycle.contrib",
          "requirements": [],
          "services": [],
          "version": "7.10-HF07",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.routing.lifecycle.contrib\">\n\n  <extension target=\"org.nuxeo.ecm.core.lifecycle.LifeCycleService\"\n    point=\"lifecycle\">\n\n    <lifecycle name=\"documentRouteElement\" defaultInitial=\"draft\">\n      <transitions>\n        <transition name=\"toValidated\" destinationState=\"validated\">\n          <description>the model is validated</description>\n        </transition>\n        <transition name=\"toReady\" destinationState=\"ready\">\n          <description>the element is ready to be executed</description>\n        </transition>\n        <transition name=\"toRunning\" destinationState=\"running\">\n          <description>the element starts</description>\n        </transition>\n        <transition name=\"toDone\" destinationState=\"done\">\n          <description>the element finishes</description>\n        </transition>\n        <transition name=\"toWaiting\" destinationState=\"waiting\">\n          <description>the element waits for a join</description>\n        </transition>\n        <transition name=\"toSuspended\" destinationState=\"suspended\">\n          <description>the element waits for a task</description>\n        </transition>\n        <transition name=\"backToReady\" destinationState=\"ready\">\n          <description>the element finishes</description>\n        </transition>\n        <transition name=\"toCanceled\" destinationState=\"canceled\">\n          <description>cancel this element</description>\n        </transition>\n        <transition name=\"toDraft\" destinationState=\"draft\">\n          <description>\n            go to the draft state, this is done when creating a new instance\n            from a model\n          </description>\n        </transition>\n      </transitions>\n      <states>\n        <state name=\"draft\" description=\"Default state\" initial=\"true\">\n          <transitions>\n            <transition>toValidated</transition>\n          </transitions>\n        </state>\n        <state name=\"validated\" description=\"The element is validated\" initial=\"true\">\n          <transitions>\n            <transition>toReady</transition>\n            <transition>toDraft</transition>\n          </transitions>\n        </state>\n        <state name=\"ready\" description=\"The element is ready\" initial=\"true\">\n          <transitions>\n            <transition>toRunning</transition>\n            <transition>toWaiting</transition>\n            <transition>toSuspended</transition>\n            <transition>toCanceled</transition>\n            <transition>toDraft</transition>\n          </transitions>\n        </state>\n        <state name=\"running\" description=\"The element is running\">\n          <transitions>\n            <transition>toDone</transition>\n            <transition>backToReady</transition>\n            <transition>toCanceled</transition>\n            <transition>toDraft</transition>\n          </transitions>\n        </state>\n        <state name=\"done\" description=\"The element is done\">\n          <transitions>\n            <transition>backToReady</transition>\n            <transition>toCanceled</transition>\n            <transition>toDraft</transition>\n          </transitions>\n        </state>\n        <state name=\"waiting\" description=\"The element waits for a join\">\n          <transitions>\n            <transition>toReady</transition>\n            <transition>toSuspended</transition>\n            <transition>toCanceled</transition>\n            <transition>toDraft</transition>\n          </transitions>\n        </state>\n        <state name=\"suspended\" description=\"The element waits for a task\">\n          <transitions>\n            <transition>toReady</transition>\n            <transition>toWaiting</transition>\n            <transition>toCanceled</transition>\n            <transition>toDraft</transition>\n          </transitions>\n        </state>\n        <state name=\"canceled\" description=\"The element is cancelled\">\n          <transitions>\n            <transition>backToReady</transition>\n            <transition>toDraft</transition>\n          </transitions>\n        </state>\n      </states>\n    </lifecycle>\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.core.lifecycle.LifeCycleService\"\n    point=\"types\">\n    <types>\n      <type name=\"DocumentRoute\"\n        noRecursionForTransitions=\"toValidated,toReady,toRunning,toDone,toCanceled,backToReady\">\n        documentRouteElement\n      </type>\n      <type name=\"StepFolder\"\n        noRecursionForTransitions=\"toValidated,toReady,toRunning,toDone,toCanceled,backToReady\">\n        documentRouteElement\n      </type>\n      <type name=\"ConditionalStepFolder\"\n        noRecursionForTransitions=\"toValidated,toReady,toRunning,toDone,toCanceled,backToReady\">\n        documentRouteElement\n      </type>\n      <type name=\"DocumentRouteStep\">documentRouteElement</type>\n      <type name=\"RouteNode\">documentRouteElement</type>\n      <type name=\"RoutingTask\">task</type>\n    </types>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/document-routing-life-cycle-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService--event",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.audit/Contributions/org.nuxeo.ecm.platform.routing.audit--event",
              "id": "org.nuxeo.ecm.platform.routing.audit--event",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
                "name": "org.nuxeo.ecm.platform.audit.service.NXAuditEventsService",
                "type": "service"
              },
              "version": "7.10-HF07",
              "xml": "<extension point=\"event\" target=\"org.nuxeo.ecm.platform.audit.service.NXAuditEventsService\">\n    <event name=\"auditLogRoute\"/>\n    <event name=\"workflowTaskAssigned\"/>\n    <event name=\"workflowTaskReassigned\"/>\n    <event name=\"workflowTaskCompleted\"/>\n    <event name=\"workflowCanceled\"/>\n    <event name=\"workflowTaskDelegated\"/>\n    <event name=\"afterWorkflowStarted\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.modelId}\" key=\"modelId\"/>\n        <extendedInfo expression=\"${message.properties.modelName}\" key=\"modelName\"/>\n        <extendedInfo expression=\"${message.properties.workflowInitiator}\" key=\"workflowInitiator\"/>\n        <extendedInfo expression=\"${message.properties.workflowVariables}\" key=\"workflowVariables\"/>\n      </extendedInfos>\n    </event>\n    <event name=\"afterWorkflowFinish\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.modelId}\" key=\"modelId\"/>\n        <extendedInfo expression=\"${message.properties.modelName}\" key=\"modelName\"/>\n        <extendedInfo expression=\"${message.properties.workflowInitiator}\" key=\"workflowInitiator\"/>\n        <extendedInfo expression=\"${message.properties.timeSinceWfStarted}\" key=\"timeSinceWfStarted\"/>\n        <extendedInfo expression=\"${message.properties.workflowVariables}\" key=\"workflowVariables\"/>\n      </extendedInfos>\n    </event>\n    <event name=\"beforeWorkflowCanceled\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.modelId}\" key=\"modelId\"/>\n        <extendedInfo expression=\"${message.properties.modelName}\" key=\"modelName\"/>\n        <extendedInfo expression=\"${message.properties.workflowInitiator}\" key=\"workflowInitiator\"/>\n        <extendedInfo expression=\"${message.properties.pendingNodes}\" key=\"pendingNodes\"/>\n        <extendedInfo expression=\"${message.properties.workflowVariables}\" key=\"workflowVariables\"/>\n      </extendedInfos>\n    </event>\n    <event name=\"afterWorkflowTaskCreated\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.modelName}\" key=\"modelName\"/>\n        <extendedInfo expression=\"${message.properties.modelId}\" key=\"modelId\"/>\n        <extendedInfo expression=\"${message.properties.workflowInitiator}\" key=\"workflowInitiator\"/>\n        <extendedInfo expression=\"${message.properties.taskName}\" key=\"taskName\"/>\n        <extendedInfo expression=\"${message.properties.taskActor}\" key=\"taskActor\"/>\n        <extendedInfo expression=\"${message.properties.actors}\" key=\"actors\"/>\n        <extendedInfo expression=\"${message.properties.nodeVariables}\" key=\"nodeVariables\"/>\n        <extendedInfo expression=\"${message.properties.workflowVariables}\" key=\"workflowVariables\"/>\n        <extendedInfo expression=\"${message.properties.timeSinceWfStarted}\" key=\"timeSinceWfStarted\"/>\n      </extendedInfos>\n    </event>\n    <event name=\"afterWorkflowTaskEnded\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.modelName}\" key=\"modelName\"/>\n        <extendedInfo expression=\"${message.properties.workflowInitiator}\" key=\"workflowInitiator\"/>\n        <extendedInfo expression=\"${message.properties.taskName}\" key=\"taskName\"/>\n        <extendedInfo expression=\"${message.properties.taskActor}\" key=\"taskActor\"/>\n        <extendedInfo expression=\"${message.properties.data}\" key=\"data\"/>\n        <extendedInfo expression=\"${message.properties.action}\" key=\"action\"/>\n        <extendedInfo expression=\"${message.properties.nodeVariables}\" key=\"nodeVariables\"/>\n        <extendedInfo expression=\"${message.properties.workflowVariables}\" key=\"workflowVariables\"/>\n        <extendedInfo expression=\"${message.properties.timeSinceTaskStarted}\" key=\"timeSinceTaskStarted\"/>\n        <extendedInfo expression=\"${message.properties.timeSinceWfStarted}\" key=\"timeSinceWfStarted\"/>\n      </extendedInfos>\n    </event>\n    <event name=\"afterWorkflowTaskReassigned\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.modelName}\" key=\"modelName\"/>\n        <extendedInfo expression=\"${message.properties.modelId}\" key=\"modelId\"/>\n        <extendedInfo expression=\"${message.properties.workflowInitiator}\" key=\"workflowInitiator\"/>\n        <extendedInfo expression=\"${message.properties.taskName}\" key=\"taskName\"/>\n        <extendedInfo expression=\"${message.properties.taskActor}\" key=\"taskActor\"/>\n        <extendedInfo expression=\"${message.properties.actors}\" key=\"actors\"/>\n        <extendedInfo expression=\"${message.properties.comment}\" key=\"comment\"/>\n        <extendedInfo expression=\"${message.properties.timeSinceWfStarted}\" key=\"timeSinceWfStarted\"/>\n        <extendedInfo expression=\"${message.properties.timeSinceTaskStarted}\" key=\"timeSinceTaskStarted\"/>\n      </extendedInfos>\n    </event>\n    <event name=\"afterWorkflowTaskDelegated\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.modelName}\" key=\"modelName\"/>\n        <extendedInfo expression=\"${message.properties.modelId}\" key=\"modelId\"/>\n        <extendedInfo expression=\"${message.properties.workflowInitiator}\" key=\"workflowInitiator\"/>\n        <extendedInfo expression=\"${message.properties.taskName}\" key=\"taskName\"/>\n        <extendedInfo expression=\"${message.properties.taskActor}\" key=\"taskActor\"/>\n        <extendedInfo expression=\"${message.properties.delegatedActors}\" key=\"delegatedActors\"/>\n        <extendedInfo expression=\"${message.properties.comment}\" key=\"comment\"/>\n        <extendedInfo expression=\"${message.properties.timeSinceWfStarted}\" key=\"timeSinceWfStarted\"/>\n        <extendedInfo expression=\"${message.properties.timeSinceTaskStarted}\" key=\"timeSinceTaskStarted\"/>\n      </extendedInfos>\n    </event>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.audit",
          "name": "org.nuxeo.ecm.platform.routing.audit",
          "requirements": [],
          "services": [],
          "version": "7.10-HF07",
          "xmlFileContent": "<component name=\"org.nuxeo.ecm.platform.routing.audit\" version=\"1.0\">\n\n  <extension target=\"org.nuxeo.ecm.platform.audit.service.NXAuditEventsService\"\n    point=\"event\">\n    <event name=\"auditLogRoute\" />\n    <event name=\"workflowTaskAssigned\" />\n    <event name=\"workflowTaskReassigned\" />\n    <event name=\"workflowTaskCompleted\" />\n    <event name=\"workflowCanceled\" />\n    <event name=\"workflowTaskDelegated\" />\n    <event name=\"afterWorkflowStarted\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.modelId}\" key=\"modelId\" />\n        <extendedInfo expression=\"${message.properties.modelName}\" key=\"modelName\" />\n        <extendedInfo expression=\"${message.properties.workflowInitiator}\" key=\"workflowInitiator\" />\n        <extendedInfo expression=\"${message.properties.workflowVariables}\" key=\"workflowVariables\" />\n      </extendedInfos>\n    </event>\n    <event name=\"afterWorkflowFinish\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.modelId}\" key=\"modelId\" />\n        <extendedInfo expression=\"${message.properties.modelName}\" key=\"modelName\" />\n        <extendedInfo expression=\"${message.properties.workflowInitiator}\" key=\"workflowInitiator\" />\n        <extendedInfo expression=\"${message.properties.timeSinceWfStarted}\" key=\"timeSinceWfStarted\" />\n        <extendedInfo expression=\"${message.properties.workflowVariables}\" key=\"workflowVariables\" />\n      </extendedInfos>\n    </event>\n    <event name=\"beforeWorkflowCanceled\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.modelId}\" key=\"modelId\" />\n        <extendedInfo expression=\"${message.properties.modelName}\" key=\"modelName\" />\n        <extendedInfo expression=\"${message.properties.workflowInitiator}\" key=\"workflowInitiator\" />\n        <extendedInfo expression=\"${message.properties.pendingNodes}\" key=\"pendingNodes\" />\n        <extendedInfo expression=\"${message.properties.workflowVariables}\" key=\"workflowVariables\" />\n      </extendedInfos>\n    </event>\n    <event name=\"afterWorkflowTaskCreated\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.modelName}\" key=\"modelName\" />\n        <extendedInfo expression=\"${message.properties.modelId}\" key=\"modelId\" />\n        <extendedInfo expression=\"${message.properties.workflowInitiator}\" key=\"workflowInitiator\" />\n        <extendedInfo expression=\"${message.properties.taskName}\" key=\"taskName\" />\n        <extendedInfo expression=\"${message.properties.taskActor}\" key=\"taskActor\" />\n        <extendedInfo expression=\"${message.properties.actors}\" key=\"actors\" />\n        <extendedInfo expression=\"${message.properties.nodeVariables}\" key=\"nodeVariables\" />\n        <extendedInfo expression=\"${message.properties.workflowVariables}\" key=\"workflowVariables\" />\n        <extendedInfo expression=\"${message.properties.timeSinceWfStarted}\" key=\"timeSinceWfStarted\" />\n      </extendedInfos>\n    </event>\n    <event name=\"afterWorkflowTaskEnded\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.modelName}\" key=\"modelName\" />\n        <extendedInfo expression=\"${message.properties.workflowInitiator}\" key=\"workflowInitiator\" />\n        <extendedInfo expression=\"${message.properties.taskName}\" key=\"taskName\" />\n        <extendedInfo expression=\"${message.properties.taskActor}\" key=\"taskActor\" />\n        <extendedInfo expression=\"${message.properties.data}\" key=\"data\" />\n        <extendedInfo expression=\"${message.properties.action}\" key=\"action\" />\n        <extendedInfo expression=\"${message.properties.nodeVariables}\" key=\"nodeVariables\" />\n        <extendedInfo expression=\"${message.properties.workflowVariables}\" key=\"workflowVariables\" />\n        <extendedInfo expression=\"${message.properties.timeSinceTaskStarted}\" key=\"timeSinceTaskStarted\" />\n        <extendedInfo expression=\"${message.properties.timeSinceWfStarted}\" key=\"timeSinceWfStarted\" />\n      </extendedInfos>\n    </event>\n    <event name=\"afterWorkflowTaskReassigned\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.modelName}\" key=\"modelName\" />\n        <extendedInfo expression=\"${message.properties.modelId}\" key=\"modelId\" />\n        <extendedInfo expression=\"${message.properties.workflowInitiator}\" key=\"workflowInitiator\" />\n        <extendedInfo expression=\"${message.properties.taskName}\" key=\"taskName\" />\n        <extendedInfo expression=\"${message.properties.taskActor}\" key=\"taskActor\" />\n        <extendedInfo expression=\"${message.properties.actors}\" key=\"actors\" />\n        <extendedInfo expression=\"${message.properties.comment}\" key=\"comment\" />\n        <extendedInfo expression=\"${message.properties.timeSinceWfStarted}\" key=\"timeSinceWfStarted\" />\n        <extendedInfo expression=\"${message.properties.timeSinceTaskStarted}\" key=\"timeSinceTaskStarted\" />\n      </extendedInfos>\n    </event>\n    <event name=\"afterWorkflowTaskDelegated\">\n      <extendedInfos>\n        <extendedInfo expression=\"${message.properties.modelName}\" key=\"modelName\" />\n        <extendedInfo expression=\"${message.properties.modelId}\" key=\"modelId\" />\n        <extendedInfo expression=\"${message.properties.workflowInitiator}\" key=\"workflowInitiator\" />\n        <extendedInfo expression=\"${message.properties.taskName}\" key=\"taskName\" />\n        <extendedInfo expression=\"${message.properties.taskActor}\" key=\"taskActor\" />\n        <extendedInfo expression=\"${message.properties.delegatedActors}\" key=\"delegatedActors\" />\n        <extendedInfo expression=\"${message.properties.comment}\" key=\"comment\" />\n        <extendedInfo expression=\"${message.properties.timeSinceWfStarted}\" key=\"timeSinceWfStarted\" />\n        <extendedInfo expression=\"${message.properties.timeSinceTaskStarted}\" key=\"timeSinceTaskStarted\" />\n      </extendedInfos>\n    </event>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/routing-audit-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.query.api.PageProviderService--providers",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.pageproviders/Contributions/org.nuxeo.ecm.platform.routing.pageproviders--providers",
              "id": "org.nuxeo.ecm.platform.routing.pageproviders--providers",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.query.api.PageProviderService",
                "name": "org.nuxeo.ecm.platform.query.api.PageProviderService",
                "type": "service"
              },
              "version": "7.10-HF07",
              "xml": "<extension point=\"providers\" target=\"org.nuxeo.ecm.platform.query.api.PageProviderService\">\n\n    <coreQueryPageProvider name=\"DOC_ROUTING_SEARCH_ALL_ROUTE_MODELS\">\n      <pattern>\n        SELECT * FROM DocumentRoute WHERE ecm:currentLifeCycleState = 'validated'\n      </pattern>\n      <sort ascending=\"true\" column=\"dc:title\"/>\n      <pageSize>20</pageSize>\n    </coreQueryPageProvider>\n\n    <coreQueryPageProvider name=\"DOC_ROUTING_SEARCH_ROUTE_MODELS_WITH_TITLE\">\n      <pattern>\n        SELECT * FROM DocumentRoute WHERE ecm:currentLifeCycleState = 'validated' AND dc:title LIKE ?\n      </pattern>\n      <sort ascending=\"true\" column=\"dc:title\"/>\n      <pageSize>20</pageSize>\n    </coreQueryPageProvider>\n\n    <coreQueryPageProvider name=\"DOC_ROUTING_SEARCH_ALL_ROUTE_INSTANCES\">\n      <pattern>\n        SELECT * FROM DocumentRoute WHERE ecm:currentLifeCycleState =\n        'running' AND dc:title LIKE ?\n      </pattern>\n      <sort ascending=\"true\" column=\"dc:title\"/>\n      <pageSize>20</pageSize>\n    </coreQueryPageProvider>\n\n    <coreQueryPageProvider name=\"CURRENT_DOC_ROUTING_SEARCH_ATTACHED_DOC\">\n      <pattern>\n        SELECT * FROM Document WHERE ecm:mixinType != 'Folderish' AND\n        ecm:currentLifeCycleState != 'deleted' AND dc:title ILIKE ?\n      </pattern>\n      <sort ascending=\"true\" column=\"dc:title\"/>\n      <pageSize>20</pageSize>\n    </coreQueryPageProvider>\n\n    <coreQueryPageProvider name=\"SEARCH_ROUTE_BY_ATTACHED_DOC\">\n      <pattern>\n        SELECT * FROM DocumentRoute WHERE (ecm:currentLifeCycleState = 'running'\n        OR ecm:currentLifeCycleState = 'ready') AND docri:participatingDocuments/*\n        IN (?)\n      </pattern>\n      <sort ascending=\"true\" column=\"dc:title\"/>\n      <pageSize>20</pageSize>\n    </coreQueryPageProvider>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.pageproviders",
          "name": "org.nuxeo.ecm.platform.routing.pageproviders",
          "requirements": [],
          "services": [],
          "version": "7.10-HF07",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.routing.pageproviders\">\n\n  <extension target=\"org.nuxeo.ecm.platform.query.api.PageProviderService\"\n    point=\"providers\">\n\n    <coreQueryPageProvider name=\"DOC_ROUTING_SEARCH_ALL_ROUTE_MODELS\">\n      <pattern>\n        SELECT * FROM DocumentRoute WHERE ecm:currentLifeCycleState = 'validated'\n      </pattern>\n      <sort column=\"dc:title\" ascending=\"true\" />\n      <pageSize>20</pageSize>\n    </coreQueryPageProvider>\n\n    <coreQueryPageProvider name=\"DOC_ROUTING_SEARCH_ROUTE_MODELS_WITH_TITLE\">\n      <pattern>\n        SELECT * FROM DocumentRoute WHERE ecm:currentLifeCycleState = 'validated' AND dc:title LIKE ?\n      </pattern>\n      <sort column=\"dc:title\" ascending=\"true\" />\n      <pageSize>20</pageSize>\n    </coreQueryPageProvider>\n\n    <coreQueryPageProvider name=\"DOC_ROUTING_SEARCH_ALL_ROUTE_INSTANCES\">\n      <pattern>\n        SELECT * FROM DocumentRoute WHERE ecm:currentLifeCycleState =\n        'running' AND dc:title LIKE ?\n      </pattern>\n      <sort column=\"dc:title\" ascending=\"true\" />\n      <pageSize>20</pageSize>\n    </coreQueryPageProvider>\n\n    <coreQueryPageProvider name=\"CURRENT_DOC_ROUTING_SEARCH_ATTACHED_DOC\">\n      <pattern>\n        SELECT * FROM Document WHERE ecm:mixinType != 'Folderish' AND\n        ecm:currentLifeCycleState != 'deleted' AND dc:title ILIKE ?\n      </pattern>\n      <sort column=\"dc:title\" ascending=\"true\" />\n      <pageSize>20</pageSize>\n    </coreQueryPageProvider>\n\n    <coreQueryPageProvider name=\"SEARCH_ROUTE_BY_ATTACHED_DOC\">\n      <pattern>\n        SELECT * FROM DocumentRoute WHERE (ecm:currentLifeCycleState = 'running'\n        OR ecm:currentLifeCycleState = 'ready') AND docri:participatingDocuments/*\n        IN (?)\n      </pattern>\n      <sort column=\"dc:title\" ascending=\"true\" />\n      <pageSize>20</pageSize>\n    </coreQueryPageProvider>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/pageproviders-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.security.SecurityService--permissionsVisibility",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.security/Contributions/org.nuxeo.ecm.platform.routing.security--permissionsVisibility",
              "id": "org.nuxeo.ecm.platform.routing.security--permissionsVisibility",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.security.SecurityService",
                "name": "org.nuxeo.ecm.core.security.SecurityService",
                "type": "service"
              },
              "version": "7.10-HF07",
              "xml": "<extension point=\"permissionsVisibility\" target=\"org.nuxeo.ecm.core.security.SecurityService\">\n\n    <visibility type=\"DocumentRoute\">\n      <item order=\"20\" show=\"true\">DataVisualization</item>\n    </visibility>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.security.SecurityService--permissions",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.security/Contributions/org.nuxeo.ecm.platform.routing.security--permissions",
              "id": "org.nuxeo.ecm.platform.routing.security--permissions",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.security.SecurityService",
                "name": "org.nuxeo.ecm.core.security.SecurityService",
                "type": "service"
              },
              "version": "7.10-HF07",
              "xml": "<extension point=\"permissions\" target=\"org.nuxeo.ecm.core.security.SecurityService\">\n\n    <permission name=\"DataVisualization\">\n      <include>Read</include>\n    </permission>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.security",
          "name": "org.nuxeo.ecm.platform.routing.security",
          "requirements": [],
          "services": [],
          "version": "7.10-HF07",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.routing.security\">\n\n  <require>org.nuxeo.ecm.core.security.defaultPermissions</require>\n\n  <extension target=\"org.nuxeo.ecm.core.security.SecurityService\"\n    point=\"permissions\">\n\n    <permission name=\"DataVisualization\">\n      <include>Read</include>\n    </permission>\n\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.core.security.SecurityService\"\n    point=\"permissionsVisibility\">\n\n    <visibility type=\"DocumentRoute\">\n      <item show=\"true\" order=\"20\">DataVisualization</item>\n    </visibility>\n\n  </extension>\n\n</component>",
          "xmlFileName": "/OSGI-INF/document-routing-security-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.routing.service--chainsToType",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.chainsToType.contrib/Contributions/org.nuxeo.ecm.platform.routing.chainsToType.contrib--chainsToType",
              "id": "org.nuxeo.ecm.platform.routing.chainsToType.contrib--chainsToType",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.routing.service",
                "name": "org.nuxeo.ecm.platform.routing.service",
                "type": "service"
              },
              "version": "7.10-HF07",
              "xml": "<extension point=\"chainsToType\" target=\"org.nuxeo.ecm.platform.routing.service\">\n    <mapping chainId=\"setDone\" documentType=\"DocumentRouteStep\" undoChainIdFromDone=\"simpleUndo\" undoChainIdFromRunning=\"simpleUndo\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.chainsToType.contrib",
          "name": "org.nuxeo.ecm.platform.routing.chainsToType.contrib",
          "requirements": [],
          "services": [],
          "version": "7.10-HF07",
          "xmlFileContent": "<component name=\"org.nuxeo.ecm.platform.routing.chainsToType.contrib\"\n  version=\"1.0\">\n  <!-- @deprecated since 5.9.2 - Use only routes of type 'graph' -->\n  <extension target=\"org.nuxeo.ecm.platform.routing.service\"\n    point=\"chainsToType\">\n    <mapping documentType=\"DocumentRouteStep\" chainId=\"setDone\"\n      undoChainIdFromRunning=\"simpleUndo\" undoChainIdFromDone=\"simpleUndo\" />\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/document-routing-type-chains-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.routing.service--persister",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.persister.contrib/Contributions/org.nuxeo.ecm.platform.routing.persister.contrib--persister",
              "id": "org.nuxeo.ecm.platform.routing.persister.contrib--persister",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.routing.service",
                "name": "org.nuxeo.ecm.platform.routing.service",
                "type": "service"
              },
              "version": "7.10-HF07",
              "xml": "<extension point=\"persister\" target=\"org.nuxeo.ecm.platform.routing.service\">\n    <persister class=\"org.nuxeo.ecm.platform.routing.core.impl.DocumentRoutingTreePersister\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.persister.contrib",
          "name": "org.nuxeo.ecm.platform.routing.persister.contrib",
          "requirements": [],
          "services": [],
          "version": "7.10-HF07",
          "xmlFileContent": "<component name=\"org.nuxeo.ecm.platform.routing.persister.contrib\"\n  version=\"1.0\">\n\n  <require>org.nuxeo.ecm.core.repository.RepositoryService</require>\n\n  <extension target=\"org.nuxeo.ecm.platform.routing.service\"\n    point=\"persister\">\n    <persister\n      class=\"org.nuxeo.ecm.platform.routing.core.impl.DocumentRoutingTreePersister\" />\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/document-routing-persister-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.platform.routing.core.impl.DocumentRoutingServiceImpl",
          "documentation": "\n    The Document Routing Service allows to create and start\n    new DocumentRoute\n    instance.\n  \n",
          "documentationHtml": "<p>\nThe Document Routing Service allows to create and start\nnew DocumentRoute\ninstance.\n</p><p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.routing.service",
              "descriptors": [
                "org.nuxeo.ecm.platform.routing.core.impl.ChainToTypeMappingDescriptor"
              ],
              "documentation": "\n      Use to map an operation chains to a Step document type. If the\n      chains are\n      declared for the same type, only the last one is use.\n      The same chain can\n      be used for different type.\n      @deprecated since\n      5.9.2 - Use only routes of type 'graph'\n      <code>\n    <mapping chainId=\"the id of the chain\" documentType=\"The type of the document that extends DocumentRouteStep\"/>\n</code>\n",
              "documentationHtml": "<p>\nUse to map an operation chains to a Step document type. If the\nchains are\ndeclared for the same type, only the last one is use.\nThe same chain can\nbe used for different type.\n&#64;deprecated since\n5.9.2 - Use only routes of type &#39;graph&#39;\n</p><p></p><pre><code>    &lt;mapping chainId&#61;&#34;the id of the chain&#34; documentType&#61;&#34;The type of the document that extends DocumentRouteStep&#34;/&gt;\n</code></pre><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.service/ExtensionPoints/org.nuxeo.ecm.platform.routing.service--chainsToType",
              "id": "org.nuxeo.ecm.platform.routing.service--chainsToType",
              "label": "chainsToType (org.nuxeo.ecm.platform.routing.service)",
              "name": "chainsToType",
              "version": "7.10-HF07"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.routing.service",
              "descriptors": [
                "org.nuxeo.ecm.platform.routing.core.impl.PersisterDescriptor"
              ],
              "documentation": "\n      Use to provide a persister. A persister should implement\n      DocumentRoutingPersister. It is responsible to persist instances\n      of route.\n      <code>\n    <persister class=\"org.my.implementation.of.Persister\"/>\n</code>\n",
              "documentationHtml": "<p>\nUse to provide a persister. A persister should implement\nDocumentRoutingPersister. It is responsible to persist instances\nof route.\n</p><p></p><pre><code>    &lt;persister class&#61;&#34;org.my.implementation.of.Persister&#34;/&gt;\n</code></pre><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.service/ExtensionPoints/org.nuxeo.ecm.platform.routing.service--persister",
              "id": "org.nuxeo.ecm.platform.routing.service--persister",
              "label": "persister (org.nuxeo.ecm.platform.routing.service)",
              "name": "persister",
              "version": "7.10-HF07"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.routing.service",
              "descriptors": [
                "org.nuxeo.ecm.platform.routing.api.RouteModelResourceType"
              ],
              "documentation": "\n      Use to provide a resource path to import route models\n      <code>\n    <template-resource path=\"the path of the zip containing an xml export of the models to import \"/>\n</code>\n",
              "documentationHtml": "<p>\nUse to provide a resource path to import route models\n</p><p></p><pre><code>    &lt;template-resource path&#61;&#34;the path of the zip containing an xml export of the models to import &#34;/&gt;\n</code></pre><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.service/ExtensionPoints/org.nuxeo.ecm.platform.routing.service--routeModelImporter",
              "id": "org.nuxeo.ecm.platform.routing.service--routeModelImporter",
              "label": "routeModelImporter (org.nuxeo.ecm.platform.routing.service)",
              "name": "routeModelImporter",
              "version": "7.10-HF07"
            }
          ],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.runtime.EventService--listeners",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.service/Contributions/org.nuxeo.ecm.platform.routing.service--listeners",
              "id": "org.nuxeo.ecm.platform.routing.service--listeners",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.runtime.EventService",
                "name": "org.nuxeo.runtime.EventService",
                "type": "service"
              },
              "version": "7.10-HF07",
              "xml": "<extension point=\"listeners\" target=\"org.nuxeo.runtime.EventService\">\n    <listener class=\"org.nuxeo.ecm.platform.routing.core.listener.RouteModelsReloader\">\n      <topic>org.nuxeo.runtime.reload</topic>\n    </listener>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.service",
          "name": "org.nuxeo.ecm.platform.routing.service",
          "requirements": [],
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.platform.routing.service",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.service/Services/org.nuxeo.ecm.platform.routing.api.DocumentRoutingService",
              "id": "org.nuxeo.ecm.platform.routing.api.DocumentRoutingService",
              "overriden": false,
              "version": "7.10-HF07"
            }
          ],
          "version": "7.10-HF07",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.routing.service\">\n\n  <documentation>\n    The Document Routing Service allows to create and start\n    new DocumentRoute\n    instance.\n  </documentation>\n\n  <implementation\n    class=\"org.nuxeo.ecm.platform.routing.core.impl.DocumentRoutingServiceImpl\" />\n\n  <service>\n    <provide interface=\"org.nuxeo.ecm.platform.routing.api.DocumentRoutingService\" />\n  </service>\n\n  <extension-point name=\"chainsToType\">\n    <documentation>\n      Use to map an operation chains to a Step document type. If the\n      chains are\n      declared for the same type, only the last one is use.\n      The same chain can\n      be used for different type.\n      @deprecated since\n      5.9.2 - Use only routes of type 'graph'\n      <code>\n        <mapping\n          documentType=\"The type of the document that extends DocumentRouteStep\"\n          chainId=\"the id of the chain\" />\n      </code>\n    </documentation>\n    <object\n      class=\"org.nuxeo.ecm.platform.routing.core.impl.ChainToTypeMappingDescriptor\" />\n  </extension-point>\n\n\n  <extension-point name=\"persister\">\n    <documentation>\n      Use to provide a persister. A persister should implement\n      DocumentRoutingPersister. It is responsible to persist instances\n      of route.\n      <code>\n        <persister class=\"org.my.implementation.of.Persister\" />\n      </code>\n    </documentation>\n    <object\n      class=\"org.nuxeo.ecm.platform.routing.core.impl.PersisterDescriptor\" />\n  </extension-point>\n\n  <extension-point name=\"routeModelImporter\">\n    <documentation>\n      Use to provide a resource path to import route models\n      <code>\n        <template-resource\n          path=\"the path of the zip containing an xml export of the models to import \" />\n      </code>\n    </documentation>\n    <object class=\"org.nuxeo.ecm.platform.routing.api.RouteModelResourceType\" />\n  </extension-point>\n\n  <extension target=\"org.nuxeo.runtime.EventService\" point=\"listeners\">\n    <listener\n      class=\"org.nuxeo.ecm.platform.routing.core.listener.RouteModelsReloader\">\n      <topic>org.nuxeo.runtime.reload</topic>\n    </listener>\n  </extension>\n\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/document-routing-service.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.event.EventServiceComponent--listener",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.comments.listener/Contributions/org.nuxeo.ecm.platform.routing.comments.listener--listener",
              "id": "org.nuxeo.ecm.platform.routing.comments.listener--listener",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.event.EventServiceComponent",
                "name": "org.nuxeo.ecm.core.event.EventServiceComponent",
                "type": "service"
              },
              "version": "7.10-HF07",
              "xml": "<extension point=\"listener\" target=\"org.nuxeo.ecm.core.event.EventServiceComponent\">\n\n    <listener async=\"false\" class=\"org.nuxeo.ecm.platform.routing.core.listener.DocumentRoutingUpdateCommentsInfoListener\" name=\"updateCommentsInfoListener\" postCommit=\"false\" priority=\"120\">\n      <event>commentAdded</event>\n      <event>commentRemoved</event>\n    </listener>\n\n    <listener async=\"false\" class=\"org.nuxeo.ecm.platform.routing.core.listener.DocumentRouteCreationListener\" name=\"routeCreatedListener\" postCommit=\"false\" priority=\"200\">\n      <event>documentCreated</event>\n    </listener>\n    \n    <listener async=\"false\" class=\"org.nuxeo.ecm.platform.routing.core.listener.DocumentRoutingSecurityListener\" name=\"securityListener\" postCommit=\"false\" priority=\"120\">\n      <event>beforeRouteReady</event>\n    </listener>\n    \n    <listener async=\"false\" class=\"org.nuxeo.ecm.platform.routing.core.listener.RoutingTaskSecurityUpdaterListener\" name=\"routingSecurityUpdaterForActors\" postCommit=\"false\" priority=\"250\">\n      <event>workflowTaskAssigned</event>\n      <event>workflowTaskReassigned</event>\n      <event>workflowTaskDelegated</event>\n    </listener>\n    \n    <listener async=\"true\" class=\"org.nuxeo.ecm.platform.routing.core.listener.DocumentRoutingEscalationListener\" name=\"triggerEsclationRules\">\n      <event>executeEscalationRules</event>\n    </listener>\n\n    <listener async=\"true\" class=\"org.nuxeo.ecm.platform.routing.core.listener.DocumentRoutingWorkflowDoneListener\" name=\"cleanOpenTasksOnWorkflowDone\">\n      <event>afterRouteFinish</event>\n    </listener>\n    \n    <listener async=\"true\" class=\"org.nuxeo.ecm.platform.routing.core.listener.RoutingTaskDeletedListener\" name=\"deleteRoutingTaskListener\">\n      <event>aboutToRemove</event>\n    </listener>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.comments.listener",
          "name": "org.nuxeo.ecm.platform.routing.comments.listener",
          "requirements": [],
          "services": [],
          "version": "7.10-HF07",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.routing.comments.listener\">\n\n  <extension target=\"org.nuxeo.ecm.core.event.EventServiceComponent\"\n    point=\"listener\">\n\n    <listener name=\"updateCommentsInfoListener\" async=\"false\"\n      postCommit=\"false\"\n      class=\"org.nuxeo.ecm.platform.routing.core.listener.DocumentRoutingUpdateCommentsInfoListener\"\n      priority=\"120\">\n      <event>commentAdded</event>\n      <event>commentRemoved</event>\n    </listener>\n\n    <listener name=\"routeCreatedListener\" async=\"false\"\n      postCommit=\"false\"\n      class=\"org.nuxeo.ecm.platform.routing.core.listener.DocumentRouteCreationListener\"\n      priority=\"200\">\n      <event>documentCreated</event>\n    </listener>\n    \n    <listener name=\"securityListener\" async=\"false\" postCommit=\"false\"\n      class=\"org.nuxeo.ecm.platform.routing.core.listener.DocumentRoutingSecurityListener\"\n      priority=\"120\">\n      <event>beforeRouteReady</event>\n    </listener>\n    \n    <listener name=\"routingSecurityUpdaterForActors\" async=\"false\" postCommit=\"false\"\n      class=\"org.nuxeo.ecm.platform.routing.core.listener.RoutingTaskSecurityUpdaterListener\"\n      priority=\"250\">\n      <event>workflowTaskAssigned</event>\n      <event>workflowTaskReassigned</event>\n      <event>workflowTaskDelegated</event>\n    </listener>\n    \n    <listener name=\"triggerEsclationRules\" async=\"true\"\n      class=\"org.nuxeo.ecm.platform.routing.core.listener.DocumentRoutingEscalationListener\">\n      <event>executeEscalationRules</event>\n    </listener>\n\n    <listener name=\"cleanOpenTasksOnWorkflowDone\" async=\"true\"\n      class=\"org.nuxeo.ecm.platform.routing.core.listener.DocumentRoutingWorkflowDoneListener\">\n      <event>afterRouteFinish</event>\n    </listener>\n    \n    <listener name=\"deleteRoutingTaskListener\" async=\"true\"\n      class=\"org.nuxeo.ecm.platform.routing.core.listener.RoutingTaskDeletedListener\">\n      <event>aboutToRemove</event>\n    </listener>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/document-routing-listeners-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.platform.routing.core.impl.DocumentRoutingEngineServiceImpl",
          "documentation": "\n    The Document Routing Persistence service is use to move the tolken from step\n    to step inside a DocumentRoute instance. The tolken represent the flow of\n    the RouteInstance.\n  \n",
          "documentationHtml": "<p>\nThe Document Routing Persistence service is use to move the tolken from step\nto step inside a DocumentRoute instance. The tolken represent the flow of\nthe RouteInstance.\n</p><p></p>",
          "extensionPoints": [],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.engine.service",
          "name": "org.nuxeo.ecm.platform.routing.engine.service",
          "requirements": [],
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.platform.routing.engine.service",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.engine.service/Services/org.nuxeo.ecm.platform.routing.core.api.DocumentRoutingEngineService",
              "id": "org.nuxeo.ecm.platform.routing.core.api.DocumentRoutingEngineService",
              "overriden": false,
              "version": "7.10-HF07"
            }
          ],
          "version": "7.10-HF07",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.routing.engine.service\">\n\n  <documentation>\n    The Document Routing Persistence service is use to move the tolken from step\n    to step inside a DocumentRoute instance. The tolken represent the flow of\n    the RouteInstance.\n  </documentation>\n\n  <implementation\n    class=\"org.nuxeo.ecm.platform.routing.core.impl.DocumentRoutingEngineServiceImpl\" />\n\n  <service>\n    <provide\n      interface=\"org.nuxeo.ecm.platform.routing.core.api.DocumentRoutingEngineService\" />\n  </service>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/document-routing-engine-service.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.api.DocumentAdapterService--adapters",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.adapter/Contributions/org.nuxeo.ecm.platform.routing.adapter--adapters",
              "id": "org.nuxeo.ecm.platform.routing.adapter--adapters",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.api.DocumentAdapterService",
                "name": "org.nuxeo.ecm.core.api.DocumentAdapterService",
                "type": "service"
              },
              "version": "7.10-HF07",
              "xml": "<extension point=\"adapters\" target=\"org.nuxeo.ecm.core.api.DocumentAdapterService\">\n    <adapter class=\"org.nuxeo.ecm.platform.routing.api.DocumentRoute\" factory=\"org.nuxeo.ecm.platform.routing.core.adapter.DocumentRouteAdapterFactory\"/>\n    <adapter class=\"org.nuxeo.ecm.platform.routing.api.DocumentRouteStep\" factory=\"org.nuxeo.ecm.platform.routing.core.adapter.DocumentRouteAdapterFactory\"/>\n    <adapter class=\"org.nuxeo.ecm.platform.routing.api.DocumentRouteElement\" factory=\"org.nuxeo.ecm.platform.routing.core.adapter.DocumentRouteAdapterFactory\"/>\n    <adapter class=\"org.nuxeo.ecm.platform.routing.api.LockableDocumentRoute\" factory=\"org.nuxeo.ecm.platform.routing.core.adapter.LockableDocumentAdapterFactory\"/>\n    <adapter class=\"org.nuxeo.ecm.platform.routing.core.impl.GraphRoute\" factory=\"org.nuxeo.ecm.platform.routing.core.adapter.DocumentRouteAdapterFactory\"/>\n    <adapter class=\"org.nuxeo.ecm.platform.routing.core.impl.GraphNode\" factory=\"org.nuxeo.ecm.platform.routing.core.adapter.DocumentRouteAdapterFactory\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.adapter",
          "name": "org.nuxeo.ecm.platform.routing.adapter",
          "requirements": [],
          "services": [],
          "version": "7.10-HF07",
          "xmlFileContent": "<component name=\"org.nuxeo.ecm.platform.routing.adapter\" version=\"1.0\">\n\n  <extension target=\"org.nuxeo.ecm.core.api.DocumentAdapterService\"\n    point=\"adapters\">\n    <adapter class=\"org.nuxeo.ecm.platform.routing.api.DocumentRoute\"\n      factory=\"org.nuxeo.ecm.platform.routing.core.adapter.DocumentRouteAdapterFactory\" />\n    <adapter class=\"org.nuxeo.ecm.platform.routing.api.DocumentRouteStep\"\n      factory=\"org.nuxeo.ecm.platform.routing.core.adapter.DocumentRouteAdapterFactory\" />\n    <adapter class=\"org.nuxeo.ecm.platform.routing.api.DocumentRouteElement\"\n      factory=\"org.nuxeo.ecm.platform.routing.core.adapter.DocumentRouteAdapterFactory\" />\n    <adapter class=\"org.nuxeo.ecm.platform.routing.api.LockableDocumentRoute\"\n      factory=\"org.nuxeo.ecm.platform.routing.core.adapter.LockableDocumentAdapterFactory\" />\n    <adapter class=\"org.nuxeo.ecm.platform.routing.core.impl.GraphRoute\"\n      factory=\"org.nuxeo.ecm.platform.routing.core.adapter.DocumentRouteAdapterFactory\" />\n    <adapter class=\"org.nuxeo.ecm.platform.routing.core.impl.GraphNode\"\n      factory=\"org.nuxeo.ecm.platform.routing.core.adapter.DocumentRouteAdapterFactory\" />\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/document-routing-adapter-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentation": "\n    Core IO registered marshallers set.\n  \n",
          "documentationHtml": "<p>\nCore IO registered marshallers set.\n</p><p></p>",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.io.MarshallerRegistry--marshallers",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.marshallers/Contributions/org.nuxeo.ecm.platform.routing.marshallers--marshallers",
              "id": "org.nuxeo.ecm.platform.routing.marshallers--marshallers",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.io.MarshallerRegistry",
                "name": "org.nuxeo.ecm.core.io.MarshallerRegistry",
                "type": "service"
              },
              "version": "7.10-HF07",
              "xml": "<extension point=\"marshallers\" target=\"org.nuxeo.ecm.core.io.MarshallerRegistry\">\n    <register class=\"org.nuxeo.ecm.platform.routing.core.io.TaskCompletionRequestJsonReader\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.platform.routing.core.io.WorkflowRequestJsonReader\" enable=\"true\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.marshallers",
          "name": "org.nuxeo.ecm.platform.routing.marshallers",
          "requirements": [],
          "services": [],
          "version": "7.10-HF07",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.routing.marshallers\" version=\"1.0.0\">\n  <documentation>\n    Core IO registered marshallers set.\n  </documentation>\n  <extension target=\"org.nuxeo.ecm.core.io.MarshallerRegistry\" point=\"marshallers\">\n    <register class=\"org.nuxeo.ecm.platform.routing.core.io.TaskCompletionRequestJsonReader\" enable=\"true\" />\n    <register class=\"org.nuxeo.ecm.platform.routing.core.io.WorkflowRequestJsonReader\" enable=\"true\" />\n  </extension>\n</component>",
          "xmlFileName": "/OSGI-INF/marshallers-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.directory.sql.SQLDirectoryFactory--directories",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.directories.contrib/Contributions/org.nuxeo.ecm.platform.routing.directories.contrib--directories",
              "id": "org.nuxeo.ecm.platform.routing.directories.contrib--directories",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.directory.sql.SQLDirectoryFactory",
                "name": "org.nuxeo.ecm.directory.sql.SQLDirectoryFactory",
                "type": "service"
              },
              "version": "7.10-HF07",
              "xml": "<extension point=\"directories\" target=\"org.nuxeo.ecm.directory.sql.SQLDirectoryFactory\">\n\n    <directory name=\"execution_type\">\n      <schema>vocabulary</schema>\n      <dataSource>java:/nxsqldirectory</dataSource>\n      <cacheTimeout>3600</cacheTimeout>\n      <cacheMaxSize>1000</cacheMaxSize>\n      <table>ecp-note-type</table>\n      <idField>id</idField>\n      <autoincrementIdField>false</autoincrementIdField>\n      <dataFile>directories/execution_type.csv</dataFile>\n      <createTablePolicy>on_missing_columns</createTablePolicy>\n    </directory>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.directories.contrib",
          "name": "org.nuxeo.ecm.platform.routing.directories.contrib",
          "requirements": [],
          "services": [],
          "version": "7.10-HF07",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n\n<component name=\"org.nuxeo.ecm.platform.routing.directories.contrib\">\n\n  <extension target=\"org.nuxeo.ecm.directory.sql.SQLDirectoryFactory\"\n    point=\"directories\">\n\n    <directory name=\"execution_type\">\n      <schema>vocabulary</schema>\n      <dataSource>java:/nxsqldirectory</dataSource>\n      <cacheTimeout>3600</cacheTimeout>\n      <cacheMaxSize>1000</cacheMaxSize>\n      <table>ecp-note-type</table>\n      <idField>id</idField>\n      <autoincrementIdField>false</autoincrementIdField>\n      <dataFile>directories/execution_type.csv</dataFile>\n      <createTablePolicy>on_missing_columns</createTablePolicy>\n    </directory>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/document-routing-directories-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.platform.routing.core.impl.RoutingTaskServiceImpl",
          "documentation": "\n    @deprecated since 5.6, use DocumentRoutingService instead\n  \n",
          "documentationHtml": "<p>\n&#64;deprecated since 5.6, use DocumentRoutingService instead\n</p><p></p>",
          "extensionPoints": [],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.task.service",
          "name": "org.nuxeo.ecm.platform.routing.task.service",
          "requirements": [],
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.platform.routing.task.service",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.task.service/Services/org.nuxeo.ecm.platform.routing.api.RoutingTaskService",
              "id": "org.nuxeo.ecm.platform.routing.api.RoutingTaskService",
              "overriden": false,
              "version": "7.10-HF07"
            }
          ],
          "version": "7.10-HF07",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.routing.task.service\">\n  <documentation>\n    @deprecated since 5.6, use DocumentRoutingService instead\n  </documentation>\n  <implementation\n    class=\"org.nuxeo.ecm.platform.routing.core.impl.RoutingTaskServiceImpl\" />\n\n  <service>\n    <provide interface=\"org.nuxeo.ecm.platform.routing.api.RoutingTaskService\" />\n  </service>\n\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/document-routing-task-service.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.filemanager.service.FileManagerService--plugins",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.FileManagerService.contrib/Contributions/org.nuxeo.ecm.platform.routing.FileManagerService.contrib--plugins",
              "id": "org.nuxeo.ecm.platform.routing.FileManagerService.contrib--plugins",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.filemanager.service.FileManagerService",
                "name": "org.nuxeo.ecm.platform.filemanager.service.FileManagerService",
                "type": "service"
              },
              "version": "7.10-HF07",
              "xml": "<extension point=\"plugins\" target=\"org.nuxeo.ecm.platform.filemanager.service.FileManagerService\">\n\n    <plugin class=\"org.nuxeo.ecm.platform.routing.core.persistence.RouteModelsZipImporter\" name=\"RouteModelsImporter\" order=\"5\">\n      <filter>application/zip</filter>\n    </plugin>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.FileManagerService.contrib",
          "name": "org.nuxeo.ecm.platform.routing.FileManagerService.contrib",
          "requirements": [],
          "services": [],
          "version": "7.10-HF07",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component\n  name=\"org.nuxeo.ecm.platform.routing.FileManagerService.contrib\">\n\n  <extension\n    target=\"org.nuxeo.ecm.platform.filemanager.service.FileManagerService\"\n    point=\"plugins\">\n\n    <plugin name=\"RouteModelsImporter\"\n      class=\"org.nuxeo.ecm.platform.routing.core.persistence.RouteModelsZipImporter\"\n      order=\"5\">\n      <filter>application/zip</filter>\n    </plugin>\n  </extension>\n\n\n</component>\n\n",
          "xmlFileName": "/OSGI-INF/document-routing-nxfilemanager-plugins-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.content.template.service.ContentTemplateService--factoryBinding",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.conditionalfolder.contentTemplateContrib/Contributions/org.nuxeo.ecm.platform.routing.conditionalfolder.contentTemplateContrib--factoryBinding",
              "id": "org.nuxeo.ecm.platform.routing.conditionalfolder.contentTemplateContrib--factoryBinding",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.content.template.service.ContentTemplateService",
                "name": "org.nuxeo.ecm.platform.content.template.service.ContentTemplateService",
                "type": "service"
              },
              "version": "7.10-HF07",
              "xml": "<extension point=\"factoryBinding\" target=\"org.nuxeo.ecm.platform.content.template.service.ContentTemplateService\">\n\n    <factoryBinding factoryName=\"SimpleTemplateFactory\" name=\"ConditionalfolderFactory\" targetType=\"ConditionalStepFolder\">\n      <template>\n        <templateItem description=\"Decisional step\" id=\"routeDocStep\" title=\"DecisionalStep\" typeName=\"DocumentRouteStep\"/>\n        <templateItem description=\"Branch executed if option1 is chosen\" id=\"option1\" title=\"Option 1\" typeName=\"StepFolder\"/>\n        <templateItem description=\"Branch executed if option2 is chosen\" id=\"option2\" title=\"Option 2\" typeName=\"StepFolder\"/>\n      </template>\n    </factoryBinding>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.conditionalfolder.contentTemplateContrib",
          "name": "org.nuxeo.ecm.platform.routing.conditionalfolder.contentTemplateContrib",
          "requirements": [],
          "services": [],
          "version": "7.10-HF07",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component\n  name=\"org.nuxeo.ecm.platform.routing.conditionalfolder.contentTemplateContrib\">\n  <!-- @deprecated since 5.9.2 - Use only routes of type 'graph' -->\n  <require>\n    org.nuxeo.ecm.platform.content.template.service.ContentTemplateService.defaultContrib\n  </require>\n\n  <extension\n    target=\"org.nuxeo.ecm.platform.content.template.service.ContentTemplateService\"\n    point=\"factoryBinding\">\n\n    <factoryBinding name=\"ConditionalfolderFactory\"\n      factoryName=\"SimpleTemplateFactory\" targetType=\"ConditionalStepFolder\">\n      <template>\n        <templateItem typeName=\"DocumentRouteStep\" id=\"routeDocStep\"\n          title=\"DecisionalStep\" description=\"Decisional step\" />\n        <templateItem typeName=\"StepFolder\" id=\"option1\"\n          title=\"Option 1\" description=\"Branch executed if option1 is chosen\" />\n        <templateItem typeName=\"StepFolder\" id=\"option2\"\n          title=\"Option 2\" description=\"Branch executed if option2 is chosen\" />\n      </template>\n    </factoryBinding>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/document-routing-conditional-content-template-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.work.service--queues",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.work/Contributions/org.nuxeo.ecm.platform.routing.work--queues",
              "id": "org.nuxeo.ecm.platform.routing.work--queues",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.work.service",
                "name": "org.nuxeo.ecm.core.work.service",
                "type": "service"
              },
              "version": "7.10-HF07",
              "xml": "<extension point=\"queues\" target=\"org.nuxeo.ecm.core.work.service\">\n    <queue id=\"escalation\">\n      <category>routingEscalation</category>\n      <name>escalation</name>\n    </queue>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.work",
          "name": "org.nuxeo.ecm.platform.routing.work",
          "requirements": [],
          "services": [],
          "version": "7.10-HF07",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.routing.work\" version=\"1.0\">\n\n  <extension target=\"org.nuxeo.ecm.core.work.service\" point=\"queues\">\n    <queue id=\"escalation\">\n      <category>routingEscalation</category>\n      <name>escalation</name>\n    </queue>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/document-routing-escalation-work-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.operation.OperationServiceComponent--chains",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.operation.chains/Contributions/org.nuxeo.ecm.platform.routing.operation.chains--chains",
              "id": "org.nuxeo.ecm.platform.routing.operation.chains--chains",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.operation.OperationServiceComponent",
                "name": "org.nuxeo.ecm.core.operation.OperationServiceComponent",
                "type": "service"
              },
              "version": "7.10-HF07",
              "xml": "<extension point=\"chains\" target=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\">\n    <chain id=\"setDone\">\n      <operation id=\"Document.Routing.Step.Done\"/>\n    </chain>\n    <chain id=\"simpleValidate\">\n      <operation id=\"Document.Routing.Resume.Step\"/>\n    </chain>\n    <chain id=\"simpleRefuse\">\n      <operation id=\"Document.Routing.Resume.Step\"/>\n    </chain>\n    <chain id=\"simpleUndo\">\n      <operation id=\"Document.Routing.BackToReady\"/>\n    </chain>\n    <chain id=\"setNextStep\">\n      <operation id=\"Update.NextStep.ConditionalFolder\"/>\n    </chain>\n    <chain id=\"decideNextStepAndSimpleValidate\">\n      <operation id=\"Update.NextStep.ConditionalFolder\">\n        <param name=\"nextStepPos\" type=\"string\">expr:Context['nextStepPos']\n        </param>\n      </operation>\n      <operation id=\"Document.Routing.Resume.Step\"/>\n    </chain>\n    <chain id=\"updateCommentsOnDoc\">\n      <operation id=\"Document.Routing.UpdateCommentsInfoOnDocument\"/>\n    </chain>\n    <chain id=\"simpleChooseNextOption1AndDone\">\n      <operation id=\"Update.NextStep.ConditionalFolder\">\n        <param name=\"nextStepPos\" type=\"string\">1</param>\n      </operation>\n      <operation id=\"Document.Routing.Step.Done\"/>\n    </chain>\n    <chain id=\"simpleChooseNextOption2AndDone\">\n      <operation id=\"Update.NextStep.ConditionalFolder\">\n        <param name=\"nextStepPos\" type=\"string\">2</param>\n      </operation>\n      <operation id=\"Document.Routing.Step.Done\"/>\n    </chain>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.operation.chains",
          "name": "org.nuxeo.ecm.platform.routing.operation.chains",
          "requirements": [],
          "services": [],
          "version": "7.10-HF07",
          "xmlFileContent": "<component name=\"org.nuxeo.ecm.platform.routing.operation.chains\"\n  version=\"1.0\">\n  <!-- @deprecated since 5.9.2 - Use only routes of type 'graph' -->\n  <extension target=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\"\n    point=\"chains\">\n    <chain id=\"setDone\">\n      <operation id=\"Document.Routing.Step.Done\" />\n    </chain>\n    <chain id=\"simpleValidate\">\n      <operation id=\"Document.Routing.Resume.Step\" />\n    </chain>\n    <chain id=\"simpleRefuse\">\n      <operation id=\"Document.Routing.Resume.Step\" />\n    </chain>\n    <chain id=\"simpleUndo\">\n      <operation id=\"Document.Routing.BackToReady\" />\n    </chain>\n    <chain id=\"setNextStep\">\n      <operation id=\"Update.NextStep.ConditionalFolder\" />\n    </chain>\n    <chain id=\"decideNextStepAndSimpleValidate\">\n      <operation id=\"Update.NextStep.ConditionalFolder\">\n        <param type=\"string\" name=\"nextStepPos\">expr:Context['nextStepPos']\n        </param>\n      </operation>\n      <operation id=\"Document.Routing.Resume.Step\" />\n    </chain>\n    <chain id=\"updateCommentsOnDoc\">\n      <operation id=\"Document.Routing.UpdateCommentsInfoOnDocument\" />\n    </chain>\n    <chain id=\"simpleChooseNextOption1AndDone\">\n      <operation id=\"Update.NextStep.ConditionalFolder\">\n        <param type=\"string\" name=\"nextStepPos\">1</param>\n      </operation>\n      <operation id=\"Document.Routing.Step.Done\" />\n    </chain>\n    <chain id=\"simpleChooseNextOption2AndDone\">\n      <operation id=\"Update.NextStep.ConditionalFolder\">\n        <param type=\"string\" name=\"nextStepPos\">2</param>\n      </operation>\n      <operation id=\"Document.Routing.Step.Done\" />\n    </chain>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/document-routing-operation-chains-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.elasticsearch.http.readonly.RequestFilterService--filters",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.es/Contributions/org.nuxeo.ecm.platform.routing.es--filters",
              "id": "org.nuxeo.ecm.platform.routing.es--filters",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.elasticsearch.http.readonly.RequestFilterService",
                "name": "org.nuxeo.elasticsearch.http.readonly.RequestFilterService",
                "type": "service"
              },
              "version": "7.10-HF07",
              "xml": "<extension point=\"filters\" target=\"org.nuxeo.elasticsearch.http.readonly.RequestFilterService\">\n    <requestFilter filterClass=\"org.nuxeo.ecm.platform.routing.core.audit.es.RoutingAuditRequestFilter\" index=\"audit_wf\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.es",
          "name": "org.nuxeo.ecm.platform.routing.es",
          "requirements": [],
          "services": [],
          "version": "7.10-HF07",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.routing.es\" version=\"1.0\">\n\n  <require>org.nuxeo.elasticsearch.http.readonly.RequestFilterService</require>\n\n  <extension target=\"org.nuxeo.elasticsearch.http.readonly.RequestFilterService\"\n    point=\"filters\">\n    <requestFilter filterClass=\"org.nuxeo.ecm.platform.routing.core.audit.es.RoutingAuditRequestFilter\"\n      index=\"audit_wf\" />\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/document-routing-audit-es-filter.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.scheduler.core.service.SchedulerRegistryService--schedule",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.escalation.scheduler.config/Contributions/org.nuxeo.ecm.platform.routing.escalation.scheduler.config--schedule",
              "id": "org.nuxeo.ecm.platform.routing.escalation.scheduler.config--schedule",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.scheduler.core.service.SchedulerRegistryService",
                "name": "org.nuxeo.ecm.platform.scheduler.core.service.SchedulerRegistryService",
                "type": "service"
              },
              "version": "7.10-HF07",
              "xml": "<extension point=\"schedule\" target=\"org.nuxeo.ecm.platform.scheduler.core.service.SchedulerRegistryService\">\n\n    <schedule id=\"escalationScheduler\">\n      <eventId>executeEscalationRules</eventId>\n      <eventCategory>escalation</eventCategory>\n      <!-- every 5 mins -->\n      <cronExpression>0 0/5 * * * ?</cronExpression>\n    </schedule>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.escalation.scheduler.config",
          "name": "org.nuxeo.ecm.platform.routing.escalation.scheduler.config",
          "requirements": [],
          "services": [],
          "version": "7.10-HF07",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.routing.escalation.scheduler.config\">\n \n  <extension\n    target=\"org.nuxeo.ecm.platform.scheduler.core.service.SchedulerRegistryService\"\n    point=\"schedule\">\n\n    <schedule id=\"escalationScheduler\">\n      <eventId>executeEscalationRules</eventId>\n      <eventCategory>escalation</eventCategory>\n      <!-- every 5 mins -->\n      <cronExpression>0 0/5 * * * ?</cronExpression>\n    </schedule>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/document-routing-escalation-scheduler-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.schema.TypeService--schema",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.CoreExtensions/Contributions/org.nuxeo.ecm.platform.routing.CoreExtensions--schema",
              "id": "org.nuxeo.ecm.platform.routing.CoreExtensions--schema",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.schema.TypeService",
                "name": "org.nuxeo.ecm.core.schema.TypeService",
                "type": "service"
              },
              "version": "7.10-HF07",
              "xml": "<extension point=\"schema\" target=\"org.nuxeo.ecm.core.schema.TypeService\">\n    <schema name=\"base\" src=\"schemas/base.xsd\"/>\n    <schema name=\"document_route_instance\" prefix=\"docri\" src=\"schemas/document_route_instance.xsd\"/>\n    <schema name=\"document_route_model\" prefix=\"docrm\" src=\"schemas/document_route_model.xsd\"/>\n    <schema name=\"step_folder\" prefix=\"stepf\" src=\"schemas/step_folder.xsd\"/>\n    <schema name=\"info_comments\" prefix=\"infocom\" src=\"schemas/info_comments.xsd\"/>\n    <schema name=\"conditional_step_folder\" prefix=\"condstepf\" src=\"schemas/conditional_step_folder.xsd\"/>\n    <schema name=\"route_node\" prefix=\"rnode\" src=\"schemas/route_node.xsd\"/>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.schema.TypeService--doctype",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.CoreExtensions/Contributions/org.nuxeo.ecm.platform.routing.CoreExtensions--doctype",
              "id": "org.nuxeo.ecm.platform.routing.CoreExtensions--doctype",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.schema.TypeService",
                "name": "org.nuxeo.ecm.core.schema.TypeService",
                "type": "service"
              },
              "version": "7.10-HF07",
              "xml": "<extension point=\"doctype\" target=\"org.nuxeo.ecm.core.schema.TypeService\">\n\n    <facet name=\"Routable\"/>\n    <facet name=\"DocumentRoute\" perDocumentQuery=\"false\"/>\n\n    <!-- @deprecated since 5.9.2 - Use only routes of type 'graph' -->\n    <facet name=\"RouteStep\"/>\n    <!-- @deprecated since 5.9.2 - Use only routes of type 'graph' -->\n    <facet name=\"StepFolder\"/>\n\n    <facet name=\"RoutingTask\" perDocumentQuery=\"false\"/>\n\n    <facet name=\"CommentsInfoHolder\">\n      <schema name=\"info_comments\"/>\n    </facet>\n\n    <!-- @deprecated since 5.9.2 - Use only routes of type 'graph' -->\n    <facet name=\"ConditionalStepFolder\">\n      <schema name=\"conditional_step_folder\"/>\n    </facet>\n\n    <doctype extends=\"TaskDoc\" name=\"RoutingTask\">\n      <facet name=\"RoutingTask\"/>\n    </doctype>\n\n    <doctype extends=\"Folder\" name=\"DocumentRouteInstancesRoot\">\n      <facet name=\"HiddenInNavigation\"/>\n      <facet name=\"SystemDocument\"/>\n      <subtypes>\n        <type>HiddenFolder</type>\n      </subtypes>\n    </doctype>\n\n    <doctype extends=\"Folder\" name=\"DocumentRouteModelsRoot\">\n      <facet name=\"HiddenInNavigation\"/>\n      <facet name=\"SystemDocument\"/>\n      <subtypes>\n        <type>Folder</type>\n      </subtypes>\n    </doctype>\n\n    <doctype append=\"true\" name=\"Domain\">\n      <subtypes>\n        <type>DocumentRouteInstancesRoot</type>\n      </subtypes>\n    </doctype>\n\n    <doctype extends=\"StepFolder\" name=\"DocumentRoute\">\n      <facet name=\"ForceAudit\"/>\n      <facet name=\"DocumentRoute\"/>\n      <facet name=\"SystemDocument\"/>\n      <schema name=\"document_route_instance\"/>\n      <schema name=\"document_route_model\"/>\n      <subtypes>\n        <type>StepFolder</type>\n        <type>DocumentRouteStep</type>\n        <type>ConditionalStepFolder</type>\n      </subtypes>\n    </doctype>\n\n    <!-- @deprecated since 5.9.2 - Use only routes of type 'graph' -->\n    <doctype extends=\"OrderedFolder\" name=\"StepFolder\">\n      <facet name=\"HiddenInNavigation\"/>\n      <facet name=\"StepFolder\"/>\n      <facet name=\"SystemDocument\"/>\n      <schema name=\"step_folder\"/>\n      <subtypes>\n        <type>StepFolder</type>\n        <type>DocumentRouteStep</type>\n        <type>RouteNode</type>\n      </subtypes>\n    </doctype>\n\n    <!-- @deprecated since 5.9.2 - Use only routes of type 'graph' -->\n    <doctype extends=\"Document\" name=\"DocumentRouteStep\">\n      <schema name=\"dublincore\"/>\n      <facet name=\"RouteStep\"/>\n      <facet name=\"Commentable\"/>\n      <facet name=\"CommentsInfoHolder\"/>\n      <facet name=\"SystemDocument\"/>\n    </doctype>\n\n    <!-- @deprecated since 5.9.2 - Use only routes of type 'graph' -->\n    <doctype extends=\"StepFolder\" name=\"ConditionalStepFolder\">\n      <facet name=\"ConditionalStepFolder\"/>\n      <facet name=\"SystemDocument\"/>\n      <subtypes>\n        <type>StepFolder</type>\n        <type>DocumentRouteStep</type>\n      </subtypes>\n    </doctype>\n\n    <doctype extends=\"Document\" name=\"RouteNode\">\n      <facet name=\"HiddenInNavigation\"/>\n      <facet name=\"SystemDocument\"/>\n      <facet name=\"NotFulltextIndexable\"/>\n      <schema name=\"dublincore\"/>\n      <schema name=\"route_node\"/>\n      <prefetch>rnode:nodeId</prefetch>\n    </doctype>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.CoreExtensions",
          "name": "org.nuxeo.ecm.platform.routing.CoreExtensions",
          "requirements": [],
          "services": [],
          "version": "7.10-HF07",
          "xmlFileContent": "\n<component name=\"org.nuxeo.ecm.platform.routing.CoreExtensions\"\n  version=\"1.0\">\n\n  <require>org.nuxeo.ecm.core.CoreExtensions</require>\n  <require>org.nuxeo.ecm.plateform.task.type</require>\n  <require>org.nuxeo.ecm.platform.audit.core.types-contrib</require>\n\n  <extension target=\"org.nuxeo.ecm.core.schema.TypeService\"\n    point=\"schema\">\n    <schema name=\"base\" src=\"schemas/base.xsd\" />\n    <schema name=\"document_route_instance\" prefix=\"docri\"\n      src=\"schemas/document_route_instance.xsd\" />\n    <schema name=\"document_route_model\" prefix=\"docrm\"\n      src=\"schemas/document_route_model.xsd\" />\n    <schema name=\"step_folder\" prefix=\"stepf\" src=\"schemas/step_folder.xsd\" />\n    <schema name=\"info_comments\" src=\"schemas/info_comments.xsd\"\n      prefix=\"infocom\" />\n    <schema name=\"conditional_step_folder\" prefix=\"condstepf\"\n      src=\"schemas/conditional_step_folder.xsd\" />\n    <schema name=\"route_node\" prefix=\"rnode\" src=\"schemas/route_node.xsd\" />\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.core.schema.TypeService\"\n    point=\"doctype\">\n\n    <facet name=\"Routable\" />\n    <facet name=\"DocumentRoute\" perDocumentQuery=\"false\" />\n\n    <!-- @deprecated since 5.9.2 - Use only routes of type 'graph' -->\n    <facet name=\"RouteStep\" />\n    <!-- @deprecated since 5.9.2 - Use only routes of type 'graph' -->\n    <facet name=\"StepFolder\" />\n\n    <facet name=\"RoutingTask\" perDocumentQuery=\"false\" />\n\n    <facet name=\"CommentsInfoHolder\">\n      <schema name=\"info_comments\" />\n    </facet>\n\n    <!-- @deprecated since 5.9.2 - Use only routes of type 'graph' -->\n    <facet name=\"ConditionalStepFolder\">\n      <schema name=\"conditional_step_folder\" />\n    </facet>\n\n    <doctype name=\"RoutingTask\" extends=\"TaskDoc\">\n      <facet name=\"RoutingTask\"/>\n    </doctype>\n\n    <doctype name=\"DocumentRouteInstancesRoot\" extends=\"Folder\">\n      <facet name=\"HiddenInNavigation\" />\n      <facet name=\"SystemDocument\" />\n      <subtypes>\n        <type>HiddenFolder</type>\n      </subtypes>\n    </doctype>\n\n    <doctype name=\"DocumentRouteModelsRoot\" extends=\"Folder\">\n      <facet name=\"HiddenInNavigation\" />\n      <facet name=\"SystemDocument\" />\n      <subtypes>\n        <type>Folder</type>\n      </subtypes>\n    </doctype>\n\n    <doctype name=\"Domain\" append=\"true\">\n      <subtypes>\n        <type>DocumentRouteInstancesRoot</type>\n      </subtypes>\n    </doctype>\n\n    <doctype name=\"DocumentRoute\" extends=\"StepFolder\">\n      <facet name=\"ForceAudit\" />\n      <facet name=\"DocumentRoute\" />\n      <facet name=\"SystemDocument\" />\n      <schema name=\"document_route_instance\" />\n      <schema name=\"document_route_model\" />\n      <subtypes>\n        <type>StepFolder</type>\n        <type>DocumentRouteStep</type>\n        <type>ConditionalStepFolder</type>\n      </subtypes>\n    </doctype>\n\n    <!-- @deprecated since 5.9.2 - Use only routes of type 'graph' -->\n    <doctype name=\"StepFolder\" extends=\"OrderedFolder\">\n      <facet name=\"HiddenInNavigation\" />\n      <facet name=\"StepFolder\" />\n      <facet name=\"SystemDocument\" />\n      <schema name=\"step_folder\" />\n      <subtypes>\n        <type>StepFolder</type>\n        <type>DocumentRouteStep</type>\n        <type>RouteNode</type>\n      </subtypes>\n    </doctype>\n\n    <!-- @deprecated since 5.9.2 - Use only routes of type 'graph' -->\n    <doctype name=\"DocumentRouteStep\" extends=\"Document\">\n      <schema name=\"dublincore\" />\n      <facet name=\"RouteStep\" />\n      <facet name=\"Commentable\" />\n      <facet name=\"CommentsInfoHolder\" />\n      <facet name=\"SystemDocument\" />\n    </doctype>\n\n    <!-- @deprecated since 5.9.2 - Use only routes of type 'graph' -->\n    <doctype name=\"ConditionalStepFolder\" extends=\"StepFolder\">\n      <facet name=\"ConditionalStepFolder\" />\n      <facet name=\"SystemDocument\" />\n      <subtypes>\n        <type>StepFolder</type>\n        <type>DocumentRouteStep</type>\n      </subtypes>\n    </doctype>\n\n    <doctype name=\"RouteNode\" extends=\"Document\">\n      <facet name=\"HiddenInNavigation\" />\n      <facet name=\"SystemDocument\" />\n      <facet name=\"NotFulltextIndexable\" />\n      <schema name=\"dublincore\" />\n      <schema name=\"route_node\" />\n      <prefetch>rnode:nodeId</prefetch>\n    </doctype>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/document-routing-core-types-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.ec.notification.service.NotificationService--notifications",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.notification.document.routing.NotificationContrib/Contributions/org.nuxeo.ecm.platform.notification.document.routing.NotificationContrib--notifications",
              "id": "org.nuxeo.ecm.platform.notification.document.routing.NotificationContrib--notifications",
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.ec.notification.service.NotificationService",
                "name": "org.nuxeo.ecm.platform.ec.notification.service.NotificationService",
                "type": "service"
              },
              "version": "7.10-HF07",
              "xml": "<extension point=\"notifications\" target=\"org.nuxeo.ecm.platform.ec.notification.service.NotificationService\">\n\n    <notification enabled=\"false\" name=\"Task assigned\">\n      <event name=\"workflowTaskAssigned\"/>\n    </notification>\n    <notification autoSubscribed=\"true\" availableIn=\"Workspace\" channel=\"email\" enabled=\"true\" label=\"label.nuxeo.notifications.appReviewStarted\" name=\"Task assigned\" subject=\"Task Assigned for ${docTitle}\" template=\"workflowTaskAssigned\" templateExpr=\"NotificationContext['taskInstance'].getVariable('taskNotificationTemplate')\">\n      <event name=\"workflowTaskAssigned\"/>\n    </notification>\n    \n   <notification autoSubscribed=\"true\" availableIn=\"Workspace\" channel=\"email\" enabled=\"true\" label=\"label.nuxeo.notifications.appReviewStarted\" name=\"Task reassigned\" subject=\"Task Reassigned on ${docTitle}\" template=\"workflowTaskAssigned\" templateExpr=\"NotificationContext['taskInstance'].getVariable('taskNotificationTemplate')\">\n      <event name=\"workflowTaskReassigned\"/>\n    </notification>\n\n   <notification autoSubscribed=\"true\" availableIn=\"Workspace\" channel=\"email\" enabled=\"true\" label=\"label.nuxeo.notifications.appReviewStarted\" name=\"Task delegated\" subject=\"Task Delegated on ${docTitle}\" template=\"workflowTaskDelegated\">\n      <event name=\"workflowTaskDelegated\"/>\n    </notification>\n    \n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.notification.document.routing.NotificationContrib",
          "name": "org.nuxeo.ecm.platform.notification.document.routing.NotificationContrib",
          "requirements": [],
          "services": [],
          "version": "7.10-HF07",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n\n<component\n  name=\"org.nuxeo.ecm.platform.notification.document.routing.NotificationContrib\">\n\n  <require>org.nuxeo.ecm.platform.notification.service.NotificationContrib</require>\n  \n  <extension\n    target=\"org.nuxeo.ecm.platform.ec.notification.service.NotificationService\"\n    point=\"notifications\">\n\n    <notification name=\"Task assigned\" enabled=\"false\" >\n      <event name=\"workflowTaskAssigned\"/>\n    </notification>\n    <notification name=\"Task assigned\" channel=\"email\" enabled=\"true\" availableIn=\"Workspace\"\n      autoSubscribed=\"true\" template=\"workflowTaskAssigned\" templateExpr=\"NotificationContext['taskInstance'].getVariable('taskNotificationTemplate')\" subject=\"Task Assigned for ${docTitle}\"\n      label=\"label.nuxeo.notifications.appReviewStarted\">\n      <event name=\"workflowTaskAssigned\"/>\n    </notification>\n    \n   <notification name=\"Task reassigned\" channel=\"email\" enabled=\"true\" availableIn=\"Workspace\"\n      autoSubscribed=\"true\" template=\"workflowTaskAssigned\" templateExpr=\"NotificationContext['taskInstance'].getVariable('taskNotificationTemplate')\" subject=\"Task Reassigned on ${docTitle}\"\n      label=\"label.nuxeo.notifications.appReviewStarted\">\n      <event name=\"workflowTaskReassigned\"/>\n    </notification>\n\n   <notification name=\"Task delegated\" channel=\"email\" enabled=\"true\" availableIn=\"Workspace\"\n      autoSubscribed=\"true\" template=\"workflowTaskDelegated\"  subject=\"Task Delegated on ${docTitle}\"\n      label=\"label.nuxeo.notifications.appReviewStarted\">\n      <event name=\"workflowTaskDelegated\"/>\n    </notification>\n    \n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/document-routing-notification-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.platform.routing.core.impl.DocumentRoutingEscalationServiceImpl",
          "documentation": "\n    The Document Routing Escalation service is used to execute all the escalation rules \n    from all running workflows.\n  \n",
          "documentationHtml": "<p>\nThe Document Routing Escalation service is used to execute all the escalation rules\nfrom all running workflows.\n</p><p></p>",
          "extensionPoints": [],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.escalation.service",
          "name": "org.nuxeo.ecm.platform.routing.escalation.service",
          "requirements": [],
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.platform.routing.escalation.service",
              "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core/org.nuxeo.ecm.platform.routing.escalation.service/Services/org.nuxeo.ecm.platform.routing.core.api.DocumentRoutingEscalationService",
              "id": "org.nuxeo.ecm.platform.routing.core.api.DocumentRoutingEscalationService",
              "overriden": false,
              "version": "7.10-HF07"
            }
          ],
          "version": "7.10-HF07",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.routing.escalation.service\">\n\n  <documentation>\n    The Document Routing Escalation service is used to execute all the escalation rules \n    from all running workflows.\n  </documentation>\n\n  <implementation\n    class=\"org.nuxeo.ecm.platform.routing.core.impl.DocumentRoutingEscalationServiceImpl\" />\n\n  <service>\n    <provide\n      interface=\"org.nuxeo.ecm.platform.routing.core.api.DocumentRoutingEscalationService\" />\n  </service>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/document-routing-escalation-service.xml",
          "xmlPureComponent": false
        }
      ],
      "fileName": "nuxeo-routing-core-7.10-HF07.jar",
      "groupId": "org.nuxeo.ecm.routing",
      "hierarchyPath": "/grp:org.nuxeo.ecm.routing/org.nuxeo.ecm.platform.routing.core",
      "id": "org.nuxeo.ecm.platform.routing.core",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nArchiver-Version: Plexus Archiver\r\nCreated-By: Apache Maven\r\nBuilt-By: jenkins\r\nBuild-Jdk: 1.8.0_60\r\nBundle-ManifestVersion: 2\r\nBundle-Version: 1.0.0\r\nBundle-Name: Nuxeo ECM Routing Core\r\nBundle-SymbolicName: org.nuxeo.ecm.platform.routing.core;singleton=true\r\nBundle-Vendor: Nuxeo\r\nNuxeo-Component: OSGI-INF/document-routing-core-types-contrib.xml,OSGI\r\n -INF/document-routing-life-cycle-contrib.xml,OSGI-INF/document-routin\r\n g-engine-service.xml,OSGI-INF/document-routing-service.xml,OSGI-INF/d\r\n ocument-routing-directories-contrib.xml,OSGI-INF/document-routing-ada\r\n pter-contrib.xml,OSGI-INF/document-routing-operation-chains-contrib.x\r\n ml,OSGI-INF/document-routing-operations-contrib.xml,OSGI-INF/document\r\n -routing-type-chains-contrib.xml,OSGI-INF/document-routing-persister-\r\n contrib.xml,OSGI-INF/document-routing-listeners-contrib.xml,OSGI-INF/\r\n document-routing-conditional-content-template-contrib.xml,OSGI-INF/ro\r\n uting-audit-contrib.xml,OSGI-INF/document-routing-task-service.xml,OS\r\n GI-INF/pageproviders-contrib.xml,OSGI-INF/document-routing-nxfilemana\r\n ger-plugins-contrib.xml,OSGI-INF/document-routing-notification-contri\r\n b.xml,OSGI-INF/document-routing-escalation-work-contrib.xml,OSGI-INF/\r\n document-routing-escalation-service.xml,OSGI-INF/document-routing-esc\r\n alation-scheduler-contrib.xml,OSGI-INF/document-routing-cleanup-contr\r\n ib.xml,OSGI-INF/document-routing-security-contrib.xml,OSGI-INF/docume\r\n nt-routing-audit-es-filter.xml,OSGI-INF/marshallers-contrib.xml\r\n\r\n",
      "packages": [],
      "requirements": [],
      "version": "7.10-HF07"
    }
  ],
  "creationDate": 1664792867649,
  "key": "Nuxeo Platform LTS 2015-7.10",
  "name": "Nuxeo Platform LTS 2015",
  "operations": [
    {
      "@type": "NXOperation",
      "aliases": [
        "Workflow.CompleteTaskOperation"
      ],
      "category": "Workflow Context",
      "contributingComponent": "org.nuxeo.ecm.platform.routing.operations",
      "description": "Completes the input task. If this is the last task the workflow will continue. Returns back the task document. \"Status\" is the id of the button the user would have clicked to submit the task form (if the outgoing transitions of the workflow node that created the task have conditions depending on it).@since 5.9.3 and 5.8.0-HF11 you can set multiple  node or workflow variables when completing the task (also similar to ending the task via form submision from the UI).The variables are specified as <i>key=value</i> pairs separated by a new line.To specify multi-line values you can use a \\ character followed by a new line. <p>Example:<pre>description=foo bar</pre>For updating a date, you will need to expose the value as ISO 8601 format, for instance : <p>Example:<pre>workflowVarString=A sample value<br>workflowVarDate=@{org.nuxeo.ecm.core.schema.utils.DateParser.formatW3CDateTime(CurrentDate.date)}</pre><p>For all values, you have to submit a JSON representation. This is an example for a variable of type StringList:<p><pre>nodeVarList = [\"John Doe\", \"John Test\"]</pre></p>",
      "hierarchyPath": "/op:WorkflowTask.Complete",
      "label": "Complete task",
      "name": "WorkflowTask.Complete",
      "operationClass": "org.nuxeo.ecm.platform.routing.core.api.operation.CompleteTaskOperation",
      "params": [
        {
          "description": null,
          "isRequired": false,
          "name": "comment",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "nodeVariables",
          "order": 0,
          "type": "properties",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "status",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "workflowVariables",
          "order": 0,
          "type": "properties",
          "values": [],
          "widget": null
        }
      ],
      "requires": "Workflow",
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "WorkflowTask.Complete",
      "version": "7.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Routing",
      "contributingComponent": "org.nuxeo.ecm.platform.routing.operations",
      "description": "Resume a step that were in running step.",
      "hierarchyPath": "/op:Document.Routing.Resume.Step",
      "label": "Resume Step",
      "name": "Document.Routing.Resume.Step",
      "operationClass": "org.nuxeo.ecm.platform.routing.api.operation.ResumeStepOperation",
      "params": [],
      "signature": [
        "void",
        "void"
      ],
      "url": "Document.Routing.Resume.Step",
      "version": "7.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Context.CancelWorkflow"
      ],
      "category": "Workflow Context",
      "contributingComponent": "org.nuxeo.ecm.platform.routing.operations",
      "description": "Cancel the workflow with the given id, where the required id is the id of the document representing the workflow instance.",
      "hierarchyPath": "/op:WorkflowInstance.Cancel",
      "label": "Cancel workflow",
      "name": "WorkflowInstance.Cancel",
      "operationClass": "org.nuxeo.ecm.platform.routing.core.api.operation.CancelWorkflowOperation",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "id",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "requires": "Workflow",
      "signature": [
        "void",
        "void"
      ],
      "url": "WorkflowInstance.Cancel",
      "version": "7.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Workflow Context",
      "contributingComponent": "org.nuxeo.ecm.platform.routing.operations",
      "description": "Returns a list of current user open tasks where their translated name matches (partially or fully ) the 'searchTerm' parameter. This operation is invoked from a select2widget and the number of returned results is limited to 15.",
      "hierarchyPath": "/op:Context.GetTaskNames",
      "label": "Get Task Translated Names",
      "name": "Context.GetTaskNames",
      "operationClass": "org.nuxeo.ecm.platform.routing.core.api.operation.GetTaskNamesOperation",
      "params": [
        {
          "description": null,
          "isRequired": false,
          "name": "lang",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "searchTerm",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "value",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "xpath",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "void",
        "documents"
      ],
      "url": "Context.GetTaskNames",
      "version": "7.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Workflow Context",
      "contributingComponent": "org.nuxeo.ecm.platform.routing.operations",
      "description": "Starts the workflow with the given model id on the input documents. Returns back the input documents.The id of the created workflow instance is available under the \"workflowInstanceId\" context variable.@Since 5.7.2 you can set multiple variables on the workflow (before 5.8 only scalar types are supported). The variables are specified as <i>key=value</i> pairs separated by a new line.To specify multi-line values you can use a \\ character followed by a new line. <p>Example:<pre>description=foo bar</pre>For updating a date, you will need to expose the value as ISO 8601 format, for instance : <p>Example:<pre>title=The Document Title<br>issued=@{org.nuxeo.ecm.core.schema.utils.DateParser.formatW3CDateTime(CurrentDate.date)}</pre><p> @since 5.9.3 and 5.8.0-HF10 you can also set variables of complex types, by submiting a JSON representation: <p><pre>assignees = [\"John Doe\", \"John Test\"]</pre></p>",
      "hierarchyPath": "/op:Context.StartWorkflow",
      "label": "Start workflow",
      "name": "Context.StartWorkflow",
      "operationClass": "org.nuxeo.ecm.platform.routing.core.api.operation.StartWorkflowOperation",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "id",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "start",
          "order": 0,
          "type": "boolean",
          "values": [
            "true"
          ],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "variables",
          "order": 0,
          "type": "properties",
          "values": [],
          "widget": null
        }
      ],
      "requires": "Workflow",
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Context.StartWorkflow",
      "version": "7.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Routing",
      "contributingComponent": "org.nuxeo.ecm.platform.routing.operations",
      "description": "get graph nodes.",
      "hierarchyPath": "/op:Document.Routing.GetGraph",
      "label": "Get graph",
      "name": "Document.Routing.GetGraph",
      "operationClass": "org.nuxeo.ecm.platform.routing.core.impl.GetGraphOperation",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "routeDocId",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "language",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "void",
        "blob"
      ],
      "url": "Document.Routing.GetGraph",
      "version": "7.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Context.ApplyMappingOnTask"
      ],
      "category": "Workflow Context",
      "contributingComponent": "org.nuxeo.ecm.platform.routing.operations",
      "description": "Applies the mapping passed in parameter on the task document. The sourceDoc in the mapping is the input document in the workflow. The operation throws a NuxeoException if the input document is not a Task.",
      "hierarchyPath": "/op:Task.ApplyDocumentMapping",
      "label": "Apply mapping on input task doc",
      "name": "Task.ApplyDocumentMapping",
      "operationClass": "org.nuxeo.ecm.platform.routing.api.operation.MapPropertiesOnTaskOperation",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "mappingName",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "requires": "Workflow",
      "signature": [
        "document",
        "document"
      ],
      "url": "Task.ApplyDocumentMapping",
      "version": "7.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Routing",
      "contributingComponent": "org.nuxeo.ecm.platform.routing.operations",
      "description": "Set the step back to a ready state.",
      "hierarchyPath": "/op:Document.Routing.BackToReady",
      "label": "Set Step back to a ready state",
      "name": "Document.Routing.BackToReady",
      "operationClass": "org.nuxeo.ecm.platform.routing.api.operation.StepBackToReadyOperation",
      "params": [],
      "signature": [
        "void",
        "void"
      ],
      "url": "Document.Routing.BackToReady",
      "version": "7.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "BulkRestartWorkflow"
      ],
      "category": "Workflow Context",
      "contributingComponent": "org.nuxeo.ecm.platform.routing.operations",
      "description": "Bulk operation to restart workflows.",
      "hierarchyPath": "/op:WorkflowModel.BulkRestartInstances",
      "label": "Bulk Restart Workflow",
      "name": "WorkflowModel.BulkRestartInstances",
      "operationClass": "org.nuxeo.ecm.platform.routing.api.operation.BulkRestartWorkflow",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "workflowId",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "batchSize",
          "order": 0,
          "type": "integer",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "nodeId",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "reinitLifecycle",
          "order": 0,
          "type": "boolean",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "void",
        "void"
      ],
      "url": "WorkflowModel.BulkRestartInstances",
      "version": "7.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Routing",
      "contributingComponent": "org.nuxeo.ecm.platform.routing.operations",
      "description": "Update branch to be executed ",
      "hierarchyPath": "/op:Update.NextStep.ConditionalFolder",
      "label": "Choose branch",
      "name": "Update.NextStep.ConditionalFolder",
      "operationClass": "org.nuxeo.ecm.platform.routing.api.operation.SetNextStepOnConditionalFolderOperation",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "nextStepPos",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "void",
        "void"
      ],
      "url": "Update.NextStep.ConditionalFolder",
      "version": "7.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Context.SetWorkflowNodeVar"
      ],
      "category": "Workflow Context",
      "contributingComponent": "org.nuxeo.ecm.platform.routing.operations",
      "description": "Set a workflow node variable given a name and the value in the context of a running workflow. To compute the value at runtime from the current context you should use an EL expression as the value. This operation works on any input type and return back the input as the output.",
      "hierarchyPath": "/op:Workflow.SetNodeVariable",
      "label": "Set Node Variable",
      "name": "Workflow.SetNodeVariable",
      "operationClass": "org.nuxeo.ecm.platform.routing.api.operation.SetWorkflowNodeVar",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "name",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "value",
          "order": 0,
          "type": "object",
          "values": [],
          "widget": null
        }
      ],
      "requires": "Workflow",
      "signature": [
        "void",
        "void"
      ],
      "url": "Workflow.SetNodeVariable",
      "version": "7.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Routing",
      "contributingComponent": "org.nuxeo.ecm.platform.routing.operations",
      "description": "Set the step as done.",
      "hierarchyPath": "/op:Document.Routing.Step.Done",
      "label": "Set Step Done",
      "name": "Document.Routing.Step.Done",
      "operationClass": "org.nuxeo.ecm.platform.routing.api.operation.StepDoneOperation",
      "params": [],
      "signature": [
        "void",
        "void"
      ],
      "url": "Document.Routing.Step.Done",
      "version": "7.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Routing",
      "contributingComponent": "org.nuxeo.ecm.platform.routing.operations",
      "description": "Update comments number on the document",
      "hierarchyPath": "/op:Document.Routing.UpdateCommentsInfoOnDocument",
      "label": "Update comments number on the document",
      "name": "Document.Routing.UpdateCommentsInfoOnDocument",
      "operationClass": "org.nuxeo.ecm.platform.routing.api.operation.UpdateCommentsInfoOnDocumentOperation",
      "params": [],
      "signature": [
        "void",
        "void"
      ],
      "url": "Document.Routing.UpdateCommentsInfoOnDocument",
      "version": "7.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Context.GetOpenTasks"
      ],
      "category": "Workflow Context",
      "contributingComponent": "org.nuxeo.ecm.platform.routing.operations",
      "description": "Returns all open tasks for the input document(s). If the operation is invoked with parameters, all tasks instances for the given 'processId' originating from the given 'nodeId' are returned. The 'processId' is the id of the document representing the workflow instance. The parameter 'username' is used to fetch only tasks assigned to the given user. Tasks are queried using an unrestricted session.",
      "hierarchyPath": "/op:Workflow.GetOpenTasks",
      "label": "Get open tasks",
      "name": "Workflow.GetOpenTasks",
      "operationClass": "org.nuxeo.ecm.platform.routing.core.api.operation.GetOpenTasksOperation",
      "params": [
        {
          "description": null,
          "isRequired": false,
          "name": "nodeId",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "processId",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "username",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "requires": "Workflow",
      "signature": [
        "document",
        "documents",
        "documents",
        "documents"
      ],
      "url": "Workflow.GetOpenTasks",
      "version": "7.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Workflow.ResumeNodeOperation"
      ],
      "category": "Workflow Context",
      "contributingComponent": "org.nuxeo.ecm.platform.routing.operations",
      "description": "Resumes a route instance on a given node. When a parameter is not specified, it will be fetched from the current context if the operation is executed in the context of a running workflow (it applies to the current workflow and to the current node).",
      "hierarchyPath": "/op:Workflow.ResumeNode",
      "label": "Resume workflow",
      "name": "Workflow.ResumeNode",
      "operationClass": "org.nuxeo.ecm.platform.routing.core.api.operation.ResumeNodeOperation",
      "params": [
        {
          "description": null,
          "isRequired": false,
          "name": "nodeId",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "workflowInstanceId",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "requires": "Workflow",
      "signature": [
        "void",
        "void"
      ],
      "url": "Workflow.ResumeNode",
      "version": "7.10"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Workflow Context",
      "contributingComponent": "org.nuxeo.ecm.platform.routing.operations",
      "description": "Set a workflow variable. The workflow variable must exists on the workflow. If no workflowId is specified the variable is set on the current workflow.To compute the value at runtime from the current context you should use a MVEL expression as the value. This operation works on any input type and return back the input as the output.",
      "hierarchyPath": "/op:Context.SetWorkflowVar",
      "label": "Set Workflow Variable",
      "name": "Context.SetWorkflowVar",
      "operationClass": "org.nuxeo.ecm.platform.routing.core.api.operation.SetWorkflowVar",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "name",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "value",
          "order": 0,
          "type": "object",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "workflowInstanceId",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "requires": "Workflow",
      "signature": [
        "void",
        "void"
      ],
      "url": "Context.SetWorkflowVar",
      "version": "7.10"
    }
  ],
  "packages": [],
  "pluginSnapshots": {},
  "releaseDate": 1447023600000,
  "version": "7.10"
}